isomorfeus-puppetmaster 0.5.3 → 0.5.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (802) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -17
  3. data/lib/isomorfeus/puppetmaster/console_message.rb +18 -18
  4. data/lib/isomorfeus/puppetmaster/cookie.rb +46 -46
  5. data/lib/isomorfeus/puppetmaster/driver/puppeteer.rb +413 -403
  6. data/lib/isomorfeus/puppetmaster/driver/puppeteer_document.rb +953 -953
  7. data/lib/isomorfeus/puppetmaster/driver/puppeteer_node.rb +851 -851
  8. data/lib/isomorfeus/puppetmaster/errors.rb +90 -90
  9. data/lib/isomorfeus/puppetmaster/iframe.rb +16 -16
  10. data/lib/isomorfeus/puppetmaster/node/content_editable.rb +17 -17
  11. data/lib/isomorfeus/puppetmaster/node/input.rb +20 -20
  12. data/lib/isomorfeus/puppetmaster/node/select.rb +35 -35
  13. data/lib/isomorfeus/puppetmaster/node.rb +279 -279
  14. data/lib/isomorfeus/puppetmaster/request.rb +16 -16
  15. data/lib/isomorfeus/puppetmaster/response.rb +25 -25
  16. data/lib/isomorfeus/puppetmaster/self_forwardable.rb +38 -38
  17. data/lib/isomorfeus/puppetmaster/server/checker.rb +1 -3
  18. data/lib/isomorfeus/puppetmaster/server.rb +1 -1
  19. data/lib/isomorfeus/puppetmaster/version.rb +3 -3
  20. data/lib/isomorfeus/puppetmaster.rb +85 -85
  21. data/lib/isomorfeus-puppetmaster.rb +1 -0
  22. data/node_modules/.bin/extract-zip +12 -12
  23. data/node_modules/.bin/extract-zip.ps1 +28 -28
  24. data/node_modules/.bin/rimraf +12 -12
  25. data/node_modules/.bin/rimraf.ps1 +28 -28
  26. data/node_modules/.package-lock.json +530 -574
  27. data/node_modules/@types/node/LICENSE +21 -21
  28. data/node_modules/@types/node/assert/strict.d.ts +8 -8
  29. data/node_modules/@types/node/assert.d.ts +912 -912
  30. data/node_modules/@types/node/async_hooks.d.ts +497 -497
  31. data/node_modules/@types/node/buffer.d.ts +2142 -2142
  32. data/node_modules/@types/node/child_process.d.ts +1355 -1355
  33. data/node_modules/@types/node/cluster.d.ts +414 -414
  34. data/node_modules/@types/node/console.d.ts +407 -407
  35. data/node_modules/@types/node/constants.d.ts +18 -18
  36. data/node_modules/@types/node/crypto.d.ts +3224 -3224
  37. data/node_modules/@types/node/dgram.d.ts +545 -545
  38. data/node_modules/@types/node/diagnostics_channel.d.ts +128 -128
  39. data/node_modules/@types/node/dns/promises.d.ts +357 -357
  40. data/node_modules/@types/node/dns.d.ts +643 -643
  41. data/node_modules/@types/node/domain.d.ts +169 -169
  42. data/node_modules/@types/node/events.d.ts +623 -623
  43. data/node_modules/@types/node/fs/promises.d.ts +997 -997
  44. data/node_modules/@types/node/fs.d.ts +3723 -3723
  45. data/node_modules/@types/node/globals.d.ts +285 -285
  46. data/node_modules/@types/node/globals.global.d.ts +1 -1
  47. data/node_modules/@types/node/http.d.ts +1358 -1358
  48. data/node_modules/@types/node/http2.d.ts +2100 -2100
  49. data/node_modules/@types/node/https.d.ts +391 -391
  50. data/node_modules/@types/node/index.d.ts +131 -131
  51. data/node_modules/@types/node/inspector.d.ts +2738 -2738
  52. data/node_modules/@types/node/module.d.ts +114 -114
  53. data/node_modules/@types/node/net.d.ts +783 -783
  54. data/node_modules/@types/node/os.d.ts +455 -455
  55. data/node_modules/@types/node/package.json +229 -229
  56. data/node_modules/@types/node/path.d.ts +172 -172
  57. data/node_modules/@types/node/perf_hooks.d.ts +555 -555
  58. data/node_modules/@types/node/process.d.ts +1477 -1477
  59. data/node_modules/@types/node/punycode.d.ts +117 -117
  60. data/node_modules/@types/node/querystring.d.ts +131 -131
  61. data/node_modules/@types/node/readline.d.ts +542 -542
  62. data/node_modules/@types/node/repl.d.ts +424 -424
  63. data/node_modules/@types/node/stream/consumers.d.ts +24 -24
  64. data/node_modules/@types/node/stream/promises.d.ts +42 -42
  65. data/node_modules/@types/node/stream/web.d.ts +6 -6
  66. data/node_modules/@types/node/stream.d.ts +1181 -1181
  67. data/node_modules/@types/node/string_decoder.d.ts +67 -67
  68. data/node_modules/@types/node/timers/promises.d.ts +68 -68
  69. data/node_modules/@types/node/timers.d.ts +94 -94
  70. data/node_modules/@types/node/tls.d.ts +1019 -1019
  71. data/node_modules/@types/node/trace_events.d.ts +161 -161
  72. data/node_modules/@types/node/tty.d.ts +206 -206
  73. data/node_modules/@types/node/url.d.ts +798 -798
  74. data/node_modules/@types/node/util.d.ts +1556 -1556
  75. data/node_modules/@types/node/v8.d.ts +378 -378
  76. data/node_modules/@types/node/vm.d.ts +504 -504
  77. data/node_modules/@types/node/wasi.d.ts +153 -153
  78. data/node_modules/@types/node/worker_threads.d.ts +649 -649
  79. data/node_modules/@types/node/zlib.d.ts +517 -517
  80. data/node_modules/@types/yauzl/LICENSE +21 -21
  81. data/node_modules/@types/yauzl/index.d.ts +98 -98
  82. data/node_modules/@types/yauzl/package.json +26 -26
  83. data/node_modules/agent-base/README.md +145 -145
  84. data/node_modules/agent-base/dist/src/index.d.ts +78 -78
  85. data/node_modules/agent-base/dist/src/index.js +202 -202
  86. data/node_modules/agent-base/dist/src/promisify.d.ts +4 -4
  87. data/node_modules/agent-base/dist/src/promisify.js +17 -17
  88. data/node_modules/agent-base/package.json +64 -64
  89. data/node_modules/agent-base/src/index.ts +345 -345
  90. data/node_modules/agent-base/src/promisify.ts +33 -33
  91. data/node_modules/balanced-match/.github/FUNDING.yml +2 -2
  92. data/node_modules/balanced-match/LICENSE.md +21 -21
  93. data/node_modules/balanced-match/README.md +97 -97
  94. data/node_modules/balanced-match/index.js +62 -62
  95. data/node_modules/balanced-match/package.json +48 -48
  96. data/node_modules/base64-js/LICENSE +21 -21
  97. data/node_modules/base64-js/README.md +34 -34
  98. data/node_modules/base64-js/index.d.ts +3 -3
  99. data/node_modules/base64-js/index.js +150 -150
  100. data/node_modules/base64-js/package.json +47 -47
  101. data/node_modules/bl/.travis.yml +17 -17
  102. data/node_modules/bl/BufferList.js +396 -396
  103. data/node_modules/bl/LICENSE.md +13 -13
  104. data/node_modules/bl/README.md +247 -247
  105. data/node_modules/bl/bl.js +84 -84
  106. data/node_modules/bl/package.json +37 -37
  107. data/node_modules/bl/test/convert.js +21 -21
  108. data/node_modules/bl/test/indexOf.js +492 -492
  109. data/node_modules/bl/test/isBufferList.js +32 -32
  110. data/node_modules/bl/test/test.js +869 -869
  111. data/node_modules/brace-expansion/LICENSE +21 -21
  112. data/node_modules/brace-expansion/README.md +129 -129
  113. data/node_modules/brace-expansion/index.js +201 -201
  114. data/node_modules/brace-expansion/package.json +47 -47
  115. data/node_modules/buffer/AUTHORS.md +70 -70
  116. data/node_modules/buffer/LICENSE +21 -21
  117. data/node_modules/buffer/README.md +410 -410
  118. data/node_modules/buffer/index.d.ts +186 -186
  119. data/node_modules/buffer/index.js +1817 -1817
  120. data/node_modules/buffer/package.json +96 -96
  121. data/node_modules/buffer-crc32/LICENSE +19 -19
  122. data/node_modules/buffer-crc32/README.md +47 -47
  123. data/node_modules/buffer-crc32/index.js +111 -111
  124. data/node_modules/buffer-crc32/package.json +39 -39
  125. data/node_modules/chownr/LICENSE +15 -15
  126. data/node_modules/chownr/README.md +3 -3
  127. data/node_modules/chownr/chownr.js +167 -167
  128. data/node_modules/chownr/package.json +29 -29
  129. data/node_modules/concat-map/.travis.yml +4 -4
  130. data/node_modules/concat-map/LICENSE +18 -18
  131. data/node_modules/concat-map/README.markdown +62 -62
  132. data/node_modules/concat-map/example/map.js +6 -6
  133. data/node_modules/concat-map/index.js +13 -13
  134. data/node_modules/concat-map/package.json +43 -43
  135. data/node_modules/concat-map/test/map.js +39 -39
  136. data/node_modules/debug/LICENSE +19 -19
  137. data/node_modules/debug/README.md +455 -455
  138. data/node_modules/debug/package.json +59 -59
  139. data/node_modules/debug/src/browser.js +269 -269
  140. data/node_modules/debug/src/common.js +274 -261
  141. data/node_modules/debug/src/index.js +10 -10
  142. data/node_modules/debug/src/node.js +263 -263
  143. data/node_modules/devtools-protocol/LICENSE +27 -27
  144. data/node_modules/devtools-protocol/README.md +12 -12
  145. data/node_modules/devtools-protocol/json/browser_protocol.json +20985 -20640
  146. data/node_modules/devtools-protocol/json/js_protocol.json +3531 -3580
  147. data/node_modules/devtools-protocol/package.json +17 -18
  148. data/node_modules/devtools-protocol/pdl/browser_protocol.pdl +9849 -9637
  149. data/node_modules/devtools-protocol/pdl/js_protocol.pdl +1653 -1678
  150. data/node_modules/devtools-protocol/types/protocol-mapping.d.ts +4333 -4321
  151. data/node_modules/devtools-protocol/types/protocol-proxy-api.d.ts +3695 -3683
  152. data/node_modules/devtools-protocol/types/protocol.d.ts +15714 -15538
  153. data/node_modules/end-of-stream/LICENSE +20 -20
  154. data/node_modules/end-of-stream/README.md +54 -54
  155. data/node_modules/end-of-stream/index.js +94 -94
  156. data/node_modules/end-of-stream/package.json +37 -37
  157. data/node_modules/extract-zip/LICENSE +23 -23
  158. data/node_modules/extract-zip/cli.js +19 -19
  159. data/node_modules/extract-zip/index.d.ts +21 -21
  160. data/node_modules/extract-zip/index.js +173 -173
  161. data/node_modules/extract-zip/package.json +80 -80
  162. data/node_modules/extract-zip/readme.md +57 -57
  163. data/node_modules/fd-slicer/.npmignore +2 -2
  164. data/node_modules/fd-slicer/.travis.yml +7 -7
  165. data/node_modules/fd-slicer/CHANGELOG.md +49 -49
  166. data/node_modules/fd-slicer/LICENSE +21 -21
  167. data/node_modules/fd-slicer/README.md +199 -199
  168. data/node_modules/fd-slicer/index.js +296 -296
  169. data/node_modules/fd-slicer/package.json +36 -36
  170. data/node_modules/fd-slicer/test/test.js +350 -350
  171. data/node_modules/find-up/index.d.ts +137 -137
  172. data/node_modules/find-up/index.js +89 -89
  173. data/node_modules/find-up/license +9 -9
  174. data/node_modules/find-up/package.json +53 -53
  175. data/node_modules/find-up/readme.md +156 -156
  176. data/node_modules/fs-constants/LICENSE +21 -21
  177. data/node_modules/fs-constants/README.md +26 -26
  178. data/node_modules/fs-constants/browser.js +1 -1
  179. data/node_modules/fs-constants/index.js +1 -1
  180. data/node_modules/fs-constants/package.json +19 -19
  181. data/node_modules/fs.realpath/LICENSE +43 -43
  182. data/node_modules/fs.realpath/README.md +33 -33
  183. data/node_modules/fs.realpath/index.js +66 -66
  184. data/node_modules/fs.realpath/old.js +303 -303
  185. data/node_modules/fs.realpath/package.json +26 -26
  186. data/node_modules/get-stream/buffer-stream.js +52 -52
  187. data/node_modules/get-stream/index.d.ts +108 -108
  188. data/node_modules/get-stream/index.js +60 -60
  189. data/node_modules/get-stream/license +9 -9
  190. data/node_modules/get-stream/package.json +50 -50
  191. data/node_modules/get-stream/readme.md +124 -124
  192. data/node_modules/glob/LICENSE +21 -21
  193. data/node_modules/glob/README.md +375 -375
  194. data/node_modules/glob/changelog.md +67 -67
  195. data/node_modules/glob/common.js +234 -234
  196. data/node_modules/glob/glob.js +788 -788
  197. data/node_modules/glob/package.json +51 -51
  198. data/node_modules/glob/sync.js +484 -484
  199. data/node_modules/https-proxy-agent/README.md +137 -137
  200. data/node_modules/https-proxy-agent/dist/agent.d.ts +30 -30
  201. data/node_modules/https-proxy-agent/dist/agent.js +179 -179
  202. data/node_modules/https-proxy-agent/dist/index.d.ts +23 -23
  203. data/node_modules/https-proxy-agent/dist/index.js +13 -13
  204. data/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +7 -7
  205. data/node_modules/https-proxy-agent/dist/parse-proxy-response.js +65 -65
  206. data/node_modules/https-proxy-agent/package.json +56 -56
  207. data/node_modules/ieee754/LICENSE +11 -11
  208. data/node_modules/ieee754/README.md +51 -51
  209. data/node_modules/ieee754/index.d.ts +9 -9
  210. data/node_modules/ieee754/index.js +85 -85
  211. data/node_modules/ieee754/package.json +52 -52
  212. data/node_modules/inflight/LICENSE +15 -15
  213. data/node_modules/inflight/README.md +37 -37
  214. data/node_modules/inflight/inflight.js +54 -54
  215. data/node_modules/inflight/package.json +29 -29
  216. data/node_modules/inherits/LICENSE +16 -16
  217. data/node_modules/inherits/README.md +42 -42
  218. data/node_modules/inherits/inherits.js +9 -9
  219. data/node_modules/inherits/inherits_browser.js +27 -27
  220. data/node_modules/inherits/package.json +29 -29
  221. data/node_modules/locate-path/index.d.ts +83 -83
  222. data/node_modules/locate-path/index.js +65 -65
  223. data/node_modules/locate-path/license +9 -9
  224. data/node_modules/locate-path/package.json +45 -45
  225. data/node_modules/locate-path/readme.md +122 -122
  226. data/node_modules/minimatch/LICENSE +15 -15
  227. data/node_modules/minimatch/README.md +209 -209
  228. data/node_modules/minimatch/minimatch.js +923 -923
  229. data/node_modules/minimatch/package.json +30 -30
  230. data/node_modules/{mkdirp → mkdirp-classic}/LICENSE +21 -21
  231. data/node_modules/mkdirp-classic/README.md +18 -0
  232. data/node_modules/{mkdirp → mkdirp-classic}/index.js +98 -99
  233. data/node_modules/mkdirp-classic/package.json +18 -0
  234. data/node_modules/ms/index.js +162 -162
  235. data/node_modules/ms/license.md +21 -21
  236. data/node_modules/ms/package.json +37 -37
  237. data/node_modules/ms/readme.md +60 -60
  238. data/node_modules/node-fetch/LICENSE.md +22 -22
  239. data/node_modules/node-fetch/README.md +590 -590
  240. data/node_modules/node-fetch/browser.js +24 -24
  241. data/node_modules/node-fetch/lib/index.es.js +1662 -1640
  242. data/node_modules/node-fetch/lib/index.js +1671 -1649
  243. data/node_modules/node-fetch/lib/index.mjs +1660 -1638
  244. data/node_modules/node-fetch/package.json +68 -66
  245. data/node_modules/once/LICENSE +15 -15
  246. data/node_modules/once/README.md +79 -79
  247. data/node_modules/once/once.js +42 -42
  248. data/node_modules/once/package.json +33 -33
  249. data/node_modules/p-limit/index.d.ts +38 -38
  250. data/node_modules/p-limit/index.js +57 -57
  251. data/node_modules/p-limit/license +9 -9
  252. data/node_modules/p-limit/package.json +52 -52
  253. data/node_modules/p-limit/readme.md +101 -101
  254. data/node_modules/p-locate/index.d.ts +64 -64
  255. data/node_modules/p-locate/index.js +52 -52
  256. data/node_modules/p-locate/license +9 -9
  257. data/node_modules/p-locate/package.json +53 -53
  258. data/node_modules/p-locate/readme.md +90 -90
  259. data/node_modules/p-try/index.d.ts +39 -39
  260. data/node_modules/p-try/index.js +9 -9
  261. data/node_modules/p-try/license +9 -9
  262. data/node_modules/p-try/package.json +42 -42
  263. data/node_modules/p-try/readme.md +58 -58
  264. data/node_modules/path-exists/index.d.ts +28 -28
  265. data/node_modules/path-exists/index.js +23 -23
  266. data/node_modules/path-exists/license +9 -9
  267. data/node_modules/path-exists/package.json +39 -39
  268. data/node_modules/path-exists/readme.md +52 -52
  269. data/node_modules/path-is-absolute/index.js +20 -20
  270. data/node_modules/path-is-absolute/license +21 -21
  271. data/node_modules/path-is-absolute/package.json +43 -43
  272. data/node_modules/path-is-absolute/readme.md +59 -59
  273. data/node_modules/pend/LICENSE +23 -23
  274. data/node_modules/pend/README.md +41 -41
  275. data/node_modules/pend/index.js +55 -55
  276. data/node_modules/pend/package.json +18 -18
  277. data/node_modules/pend/test.js +137 -137
  278. data/node_modules/pkg-dir/index.d.ts +44 -44
  279. data/node_modules/pkg-dir/index.js +17 -17
  280. data/node_modules/pkg-dir/license +9 -9
  281. data/node_modules/pkg-dir/package.json +56 -56
  282. data/node_modules/pkg-dir/readme.md +66 -66
  283. data/node_modules/progress/CHANGELOG.md +115 -115
  284. data/node_modules/progress/LICENSE +22 -22
  285. data/node_modules/progress/Makefile +8 -8
  286. data/node_modules/progress/Readme.md +146 -146
  287. data/node_modules/progress/index.js +1 -1
  288. data/node_modules/progress/lib/node-progress.js +236 -235
  289. data/node_modules/progress/package.json +26 -26
  290. data/node_modules/proxy-from-env/.eslintrc +29 -29
  291. data/node_modules/proxy-from-env/.travis.yml +10 -10
  292. data/node_modules/proxy-from-env/LICENSE +20 -20
  293. data/node_modules/proxy-from-env/README.md +131 -131
  294. data/node_modules/proxy-from-env/index.js +108 -108
  295. data/node_modules/proxy-from-env/package.json +34 -34
  296. data/node_modules/proxy-from-env/test.js +483 -483
  297. data/node_modules/pump/.travis.yml +5 -5
  298. data/node_modules/pump/LICENSE +20 -20
  299. data/node_modules/pump/README.md +65 -65
  300. data/node_modules/pump/index.js +82 -82
  301. data/node_modules/pump/package.json +24 -24
  302. data/node_modules/pump/test-browser.js +66 -66
  303. data/node_modules/pump/test-node.js +53 -53
  304. data/node_modules/puppeteer-core/CHANGELOG.md +319 -261
  305. data/node_modules/puppeteer-core/LICENSE +202 -202
  306. data/node_modules/puppeteer-core/README.md +481 -483
  307. data/node_modules/puppeteer-core/cjs-entry-core.js +29 -29
  308. data/node_modules/puppeteer-core/cjs-entry.js +29 -29
  309. data/node_modules/puppeteer-core/install.js +89 -89
  310. data/node_modules/puppeteer-core/lib/cjs/puppeteer/api-docs-entry.d.ts +110 -110
  311. data/node_modules/puppeteer-core/lib/cjs/puppeteer/api-docs-entry.js +80 -80
  312. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Accessibility.d.ts +175 -175
  313. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Accessibility.js +360 -360
  314. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/AriaQueryHandler.d.ts +20 -20
  315. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/AriaQueryHandler.js +84 -84
  316. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/AriaQueryHandler.js.map +1 -1
  317. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Browser.d.ts +455 -453
  318. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Browser.d.ts.map +1 -1
  319. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Browser.js +540 -532
  320. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Browser.js.map +1 -1
  321. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/BrowserConnector.d.ts +53 -53
  322. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/BrowserConnector.js +97 -97
  323. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  324. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/BrowserWebSocketTransport.d.ts +25 -25
  325. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/BrowserWebSocketTransport.js +34 -34
  326. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.d.ts +135 -129
  327. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.d.ts.map +1 -1
  328. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.js +298 -280
  329. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.js.map +1 -1
  330. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ConnectionTransport.d.ts +24 -24
  331. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ConnectionTransport.js +17 -17
  332. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +72 -72
  333. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ConsoleMessage.js +64 -64
  334. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Coverage.d.ts +204 -204
  335. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Coverage.js +335 -335
  336. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Coverage.js.map +1 -1
  337. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/DOMWorld.d.ts +175 -173
  338. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/DOMWorld.d.ts.map +1 -1
  339. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/DOMWorld.js +662 -658
  340. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/DOMWorld.js.map +1 -1
  341. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Debug.d.ts +52 -52
  342. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Debug.js +81 -81
  343. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/DeviceDescriptors.d.ts +40 -40
  344. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/DeviceDescriptors.js +1070 -1070
  345. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Dialog.d.ts +74 -74
  346. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Dialog.js +97 -97
  347. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Dialog.js.map +1 -1
  348. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EmulationManager.d.ts +24 -24
  349. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EmulationManager.js +37 -37
  350. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Errors.d.ts +50 -41
  351. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
  352. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Errors.js +56 -48
  353. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Errors.js.map +1 -1
  354. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EvalTypes.d.ts +60 -60
  355. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EvalTypes.js +17 -17
  356. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EventEmitter.d.ts +92 -92
  357. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EventEmitter.js +116 -116
  358. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EventEmitter.js.map +1 -1
  359. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Events.d.ts +81 -81
  360. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Events.js +86 -86
  361. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ExecutionContext.d.ts +193 -193
  362. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ExecutionContext.js +321 -321
  363. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ExecutionContext.js.map +1 -1
  364. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/FileChooser.d.ts +58 -58
  365. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/FileChooser.js +71 -71
  366. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/FileChooser.js.map +1 -1
  367. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/FrameManager.d.ts +744 -732
  368. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/FrameManager.d.ts.map +1 -1
  369. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/FrameManager.js +1047 -964
  370. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/FrameManager.js.map +1 -1
  371. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/HTTPRequest.d.ts +350 -340
  372. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  373. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/HTTPRequest.js +549 -546
  374. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
  375. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/HTTPResponse.d.ts +134 -125
  376. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/HTTPResponse.d.ts.map +1 -1
  377. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/HTTPResponse.js +184 -154
  378. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/HTTPResponse.js.map +1 -1
  379. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Input.d.ts +358 -359
  380. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Input.d.ts.map +1 -1
  381. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Input.js +543 -544
  382. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Input.js.map +1 -1
  383. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/JSHandle.d.ts +490 -490
  384. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/JSHandle.d.ts.map +1 -1
  385. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/JSHandle.js +827 -826
  386. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
  387. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/LifecycleWatcher.d.ts +65 -65
  388. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/LifecycleWatcher.d.ts.map +1 -1
  389. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/LifecycleWatcher.js +149 -148
  390. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/LifecycleWatcher.js.map +1 -1
  391. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/NetworkConditions.d.ts +26 -26
  392. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/NetworkConditions.js +33 -33
  393. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/NetworkManager.d.ts +126 -97
  394. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/NetworkManager.d.ts.map +1 -1
  395. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/NetworkManager.js +467 -345
  396. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/NetworkManager.js.map +1 -1
  397. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/PDFOptions.d.ts +161 -161
  398. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/PDFOptions.js +34 -34
  399. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Page.d.ts +2055 -2026
  400. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Page.d.ts.map +1 -1
  401. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Page.js +2533 -2487
  402. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Page.js.map +1 -1
  403. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Product.d.ts +20 -20
  404. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Product.js +17 -17
  405. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Puppeteer.d.ts +159 -159
  406. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Puppeteer.js +161 -161
  407. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Puppeteer.js.map +1 -1
  408. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/PuppeteerViewport.d.ts +51 -51
  409. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/PuppeteerViewport.js +2 -2
  410. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/QueryHandler.d.ts +64 -64
  411. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/QueryHandler.js +165 -165
  412. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/SecurityDetails.d.ts +60 -60
  413. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/SecurityDetails.js +76 -76
  414. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Target.d.ts +100 -98
  415. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Target.d.ts.map +1 -1
  416. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Target.js +145 -144
  417. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Target.js.map +1 -1
  418. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/TaskQueue.d.ts +21 -0
  419. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/TaskQueue.d.ts.map +1 -0
  420. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/TaskQueue.js +30 -0
  421. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/TaskQueue.js.map +1 -0
  422. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/TimeoutSettings.d.ts +27 -27
  423. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/TimeoutSettings.js +47 -47
  424. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Tracing.d.ts +46 -46
  425. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Tracing.js +109 -109
  426. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Tracing.js.map +1 -1
  427. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/USKeyboardLayout.d.ts +39 -39
  428. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/USKeyboardLayout.js +406 -406
  429. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/WebWorker.d.ts +98 -98
  430. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/WebWorker.js +112 -112
  431. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/assert.d.ts +22 -22
  432. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/assert.js +33 -33
  433. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/fetch.d.ts +16 -16
  434. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/fetch.js +43 -43
  435. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/helper.d.ts +84 -84
  436. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/helper.js +327 -327
  437. data/node_modules/puppeteer-core/lib/cjs/puppeteer/common/helper.js.map +1 -1
  438. data/node_modules/puppeteer-core/lib/cjs/puppeteer/environment.d.ts +16 -16
  439. data/node_modules/puppeteer-core/lib/cjs/puppeteer/environment.js +19 -19
  440. data/node_modules/puppeteer-core/lib/cjs/puppeteer/global.d.ts +16 -16
  441. data/node_modules/puppeteer-core/lib/cjs/puppeteer/global.js +2 -2
  442. data/node_modules/puppeteer-core/lib/cjs/puppeteer/initialize-node.d.ts +17 -17
  443. data/node_modules/puppeteer-core/lib/cjs/puppeteer/initialize-node.js +44 -44
  444. data/node_modules/puppeteer-core/lib/cjs/puppeteer/initialize-web.d.ts +17 -17
  445. data/node_modules/puppeteer-core/lib/cjs/puppeteer/initialize-web.js +26 -26
  446. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserFetcher.d.ts +133 -133
  447. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserFetcher.js +500 -500
  448. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
  449. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.d.ts +40 -39
  450. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.d.ts.map +1 -1
  451. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.js +256 -224
  452. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.js.map +1 -1
  453. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/LaunchOptions.d.ts +134 -130
  454. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  455. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/LaunchOptions.js +17 -17
  456. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/Launcher.d.ts +16 -16
  457. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/Launcher.d.ts.map +1 -1
  458. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/Launcher.js +655 -573
  459. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
  460. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts +26 -26
  461. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/NodeWebSocketTransport.js +47 -47
  462. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/PipeTransport.d.ts +29 -29
  463. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/PipeTransport.js +64 -64
  464. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/Puppeteer.d.ts +153 -153
  465. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/Puppeteer.js +188 -188
  466. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/Puppeteer.js.map +1 -1
  467. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/install.d.ts +17 -17
  468. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/install.js +173 -173
  469. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node/install.js.map +1 -1
  470. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node-puppeteer-core.d.ts +17 -17
  471. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node-puppeteer-core.js +24 -24
  472. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node-puppeteer-core.js.map +1 -1
  473. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node.d.ts +17 -17
  474. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node.js +23 -23
  475. data/node_modules/puppeteer-core/lib/cjs/puppeteer/node.js.map +1 -1
  476. data/node_modules/puppeteer-core/lib/cjs/puppeteer/revisions.d.ts +21 -21
  477. data/node_modules/puppeteer-core/lib/cjs/puppeteer/revisions.js +22 -22
  478. data/node_modules/puppeteer-core/lib/cjs/puppeteer/web.d.ts +17 -17
  479. data/node_modules/puppeteer-core/lib/cjs/puppeteer/web.js +23 -23
  480. data/node_modules/puppeteer-core/lib/cjs/puppeteer/web.js.map +1 -1
  481. data/node_modules/puppeteer-core/lib/cjs/vendor/mitt/src/index.d.ts +27 -27
  482. data/node_modules/puppeteer-core/lib/cjs/vendor/mitt/src/index.js +56 -56
  483. data/node_modules/puppeteer-core/lib/esm/puppeteer/api-docs-entry.d.ts +110 -110
  484. data/node_modules/puppeteer-core/lib/esm/puppeteer/api-docs-entry.js +80 -80
  485. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Accessibility.d.ts +175 -175
  486. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Accessibility.js +356 -356
  487. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/AriaQueryHandler.d.ts +20 -20
  488. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/AriaQueryHandler.js +81 -81
  489. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/AriaQueryHandler.js.map +1 -1
  490. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Browser.d.ts +455 -453
  491. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Browser.d.ts.map +1 -1
  492. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Browser.js +535 -527
  493. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Browser.js.map +1 -1
  494. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/BrowserConnector.d.ts +53 -53
  495. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/BrowserConnector.js +74 -74
  496. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts +25 -25
  497. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/BrowserWebSocketTransport.js +30 -30
  498. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.d.ts +135 -129
  499. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.d.ts.map +1 -1
  500. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.js +293 -275
  501. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.js.map +1 -1
  502. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/ConnectionTransport.d.ts +24 -24
  503. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/ConnectionTransport.js +16 -16
  504. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/ConsoleMessage.d.ts +72 -72
  505. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/ConsoleMessage.js +60 -60
  506. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Coverage.d.ts +204 -204
  507. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Coverage.js +329 -329
  508. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/DOMWorld.d.ts +175 -173
  509. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -1
  510. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/DOMWorld.js +657 -653
  511. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/DOMWorld.js.map +1 -1
  512. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Debug.d.ts +52 -52
  513. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Debug.js +77 -77
  514. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/DeviceDescriptors.d.ts +40 -40
  515. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/DeviceDescriptors.js +1067 -1067
  516. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Dialog.d.ts +74 -74
  517. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Dialog.js +93 -93
  518. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/EmulationManager.d.ts +24 -24
  519. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/EmulationManager.js +33 -33
  520. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Errors.d.ts +50 -41
  521. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
  522. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Errors.js +50 -43
  523. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Errors.js.map +1 -1
  524. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/EvalTypes.d.ts +60 -60
  525. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/EvalTypes.js +16 -16
  526. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/EventEmitter.d.ts +92 -92
  527. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/EventEmitter.js +109 -109
  528. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Events.d.ts +81 -81
  529. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Events.js +83 -83
  530. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/ExecutionContext.d.ts +193 -193
  531. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/ExecutionContext.js +317 -317
  532. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/FileChooser.d.ts +58 -58
  533. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/FileChooser.js +67 -67
  534. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/FrameManager.d.ts +744 -732
  535. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -1
  536. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/FrameManager.js +1042 -959
  537. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/FrameManager.js.map +1 -1
  538. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/HTTPRequest.d.ts +350 -340
  539. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  540. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/HTTPRequest.js +545 -542
  541. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
  542. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/HTTPResponse.d.ts +134 -125
  543. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -1
  544. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/HTTPResponse.js +180 -150
  545. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/HTTPResponse.js.map +1 -1
  546. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Input.d.ts +358 -359
  547. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Input.d.ts.map +1 -1
  548. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Input.js +537 -538
  549. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Input.js.map +1 -1
  550. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/JSHandle.d.ts +490 -490
  551. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -1
  552. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/JSHandle.js +802 -801
  553. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/JSHandle.js.map +1 -1
  554. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/LifecycleWatcher.d.ts +65 -65
  555. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/LifecycleWatcher.d.ts.map +1 -1
  556. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/LifecycleWatcher.js +145 -144
  557. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/LifecycleWatcher.js.map +1 -1
  558. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkConditions.d.ts +26 -26
  559. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkConditions.js +30 -30
  560. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkManager.d.ts +126 -97
  561. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -1
  562. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkManager.js +463 -341
  563. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkManager.js.map +1 -1
  564. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/PDFOptions.d.ts +161 -161
  565. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/PDFOptions.js +31 -31
  566. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Page.d.ts +2055 -2026
  567. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Page.d.ts.map +1 -1
  568. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Page.js +2529 -2483
  569. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Page.js.map +1 -1
  570. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Product.d.ts +20 -20
  571. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Product.js +16 -16
  572. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Puppeteer.d.ts +159 -159
  573. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Puppeteer.js +157 -157
  574. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/PuppeteerViewport.d.ts +51 -51
  575. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/PuppeteerViewport.js +1 -1
  576. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/QueryHandler.d.ts +64 -64
  577. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/QueryHandler.js +157 -157
  578. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/SecurityDetails.d.ts +60 -60
  579. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/SecurityDetails.js +72 -72
  580. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Target.d.ts +100 -98
  581. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Target.d.ts.map +1 -1
  582. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Target.js +141 -140
  583. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Target.js.map +1 -1
  584. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/TaskQueue.d.ts +21 -0
  585. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/TaskQueue.d.ts.map +1 -0
  586. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/TaskQueue.js +26 -0
  587. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/TaskQueue.js.map +1 -0
  588. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.d.ts +27 -27
  589. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js +43 -43
  590. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Tracing.d.ts +46 -46
  591. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/Tracing.js +105 -105
  592. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/USKeyboardLayout.d.ts +39 -39
  593. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/USKeyboardLayout.js +403 -403
  594. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/WebWorker.d.ts +98 -98
  595. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/WebWorker.js +108 -108
  596. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/assert.d.ts +22 -22
  597. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/assert.js +28 -28
  598. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/fetch.d.ts +16 -16
  599. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/fetch.js +20 -20
  600. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/helper.d.ts +84 -84
  601. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/helper.js +305 -305
  602. data/node_modules/puppeteer-core/lib/esm/puppeteer/common/helper.js.map +1 -1
  603. data/node_modules/puppeteer-core/lib/esm/puppeteer/environment.d.ts +16 -16
  604. data/node_modules/puppeteer-core/lib/esm/puppeteer/environment.js +16 -16
  605. data/node_modules/puppeteer-core/lib/esm/puppeteer/global.d.ts +16 -16
  606. data/node_modules/puppeteer-core/lib/esm/puppeteer/global.js +1 -1
  607. data/node_modules/puppeteer-core/lib/esm/puppeteer/initialize-node.d.ts +17 -17
  608. data/node_modules/puppeteer-core/lib/esm/puppeteer/initialize-node.js +37 -37
  609. data/node_modules/puppeteer-core/lib/esm/puppeteer/initialize-web.d.ts +17 -17
  610. data/node_modules/puppeteer-core/lib/esm/puppeteer/initialize-web.js +22 -22
  611. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserFetcher.d.ts +133 -133
  612. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserFetcher.js +474 -474
  613. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
  614. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserRunner.d.ts +40 -39
  615. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -1
  616. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserRunner.js +230 -198
  617. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserRunner.js.map +1 -1
  618. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/LaunchOptions.d.ts +134 -130
  619. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  620. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/LaunchOptions.js +16 -16
  621. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/Launcher.d.ts +16 -16
  622. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -1
  623. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/Launcher.js +633 -551
  624. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/Launcher.js.map +1 -1
  625. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +26 -26
  626. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/NodeWebSocketTransport.js +40 -40
  627. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/PipeTransport.d.ts +29 -29
  628. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/PipeTransport.js +60 -60
  629. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/Puppeteer.d.ts +153 -153
  630. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/Puppeteer.js +181 -181
  631. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/install.d.ts +17 -17
  632. data/node_modules/puppeteer-core/lib/esm/puppeteer/node/install.js +165 -165
  633. data/node_modules/puppeteer-core/lib/esm/puppeteer/node-puppeteer-core.d.ts +17 -17
  634. data/node_modules/puppeteer-core/lib/esm/puppeteer/node-puppeteer-core.js +22 -22
  635. data/node_modules/puppeteer-core/lib/esm/puppeteer/node.d.ts +17 -17
  636. data/node_modules/puppeteer-core/lib/esm/puppeteer/node.js +21 -21
  637. data/node_modules/puppeteer-core/lib/esm/puppeteer/revisions.d.ts +21 -21
  638. data/node_modules/puppeteer-core/lib/esm/puppeteer/revisions.js +19 -19
  639. data/node_modules/puppeteer-core/lib/esm/puppeteer/web.d.ts +17 -17
  640. data/node_modules/puppeteer-core/lib/esm/puppeteer/web.js +21 -21
  641. data/node_modules/puppeteer-core/lib/esm/vendor/mitt/src/index.d.ts +27 -27
  642. data/node_modules/puppeteer-core/lib/esm/vendor/mitt/src/index.js +53 -53
  643. data/node_modules/puppeteer-core/lib/types.d.ts +3899 -3766
  644. data/node_modules/puppeteer-core/package.json +115 -122
  645. data/node_modules/puppeteer-core/typescript-if-required.js +61 -61
  646. data/node_modules/readable-stream/CONTRIBUTING.md +38 -38
  647. data/node_modules/readable-stream/GOVERNANCE.md +136 -136
  648. data/node_modules/readable-stream/LICENSE +47 -47
  649. data/node_modules/readable-stream/README.md +106 -106
  650. data/node_modules/readable-stream/errors-browser.js +127 -127
  651. data/node_modules/readable-stream/errors.js +116 -116
  652. data/node_modules/readable-stream/experimentalWarning.js +17 -17
  653. data/node_modules/readable-stream/lib/_stream_duplex.js +138 -138
  654. data/node_modules/readable-stream/lib/_stream_passthrough.js +38 -38
  655. data/node_modules/readable-stream/lib/_stream_readable.js +1123 -1123
  656. data/node_modules/readable-stream/lib/_stream_transform.js +200 -200
  657. data/node_modules/readable-stream/lib/_stream_writable.js +696 -696
  658. data/node_modules/readable-stream/lib/internal/streams/async_iterator.js +206 -206
  659. data/node_modules/readable-stream/lib/internal/streams/buffer_list.js +209 -209
  660. data/node_modules/readable-stream/lib/internal/streams/destroy.js +104 -104
  661. data/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +103 -103
  662. data/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -3
  663. data/node_modules/readable-stream/lib/internal/streams/from.js +63 -63
  664. data/node_modules/readable-stream/lib/internal/streams/pipeline.js +96 -96
  665. data/node_modules/readable-stream/lib/internal/streams/state.js +26 -26
  666. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -1
  667. data/node_modules/readable-stream/lib/internal/streams/stream.js +1 -1
  668. data/node_modules/readable-stream/package.json +68 -68
  669. data/node_modules/readable-stream/readable-browser.js +9 -9
  670. data/node_modules/readable-stream/readable.js +16 -16
  671. data/node_modules/rimraf/CHANGELOG.md +65 -65
  672. data/node_modules/rimraf/LICENSE +15 -15
  673. data/node_modules/rimraf/README.md +101 -101
  674. data/node_modules/rimraf/bin.js +68 -68
  675. data/node_modules/rimraf/package.json +32 -32
  676. data/node_modules/rimraf/rimraf.js +360 -360
  677. data/node_modules/safe-buffer/LICENSE +21 -21
  678. data/node_modules/safe-buffer/README.md +584 -584
  679. data/node_modules/safe-buffer/index.d.ts +186 -186
  680. data/node_modules/safe-buffer/index.js +65 -65
  681. data/node_modules/safe-buffer/package.json +51 -51
  682. data/node_modules/string_decoder/LICENSE +48 -48
  683. data/node_modules/string_decoder/README.md +47 -47
  684. data/node_modules/string_decoder/lib/string_decoder.js +295 -295
  685. data/node_modules/string_decoder/package.json +34 -34
  686. data/node_modules/tar-fs/.travis.yml +6 -5
  687. data/node_modules/tar-fs/LICENSE +20 -20
  688. data/node_modules/tar-fs/README.md +165 -163
  689. data/node_modules/tar-fs/index.js +351 -348
  690. data/node_modules/tar-fs/package.json +41 -41
  691. data/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -1
  692. data/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -1
  693. data/node_modules/tar-fs/test/index.js +346 -346
  694. data/node_modules/tar-stream/LICENSE +20 -20
  695. data/node_modules/tar-stream/README.md +168 -168
  696. data/node_modules/tar-stream/extract.js +257 -257
  697. data/node_modules/tar-stream/headers.js +295 -295
  698. data/node_modules/tar-stream/index.js +2 -2
  699. data/node_modules/tar-stream/pack.js +255 -255
  700. data/node_modules/tar-stream/package.json +58 -58
  701. data/node_modules/tar-stream/sandbox.js +11 -11
  702. data/node_modules/through/.travis.yml +5 -5
  703. data/node_modules/through/LICENSE.APACHE2 +15 -15
  704. data/node_modules/through/LICENSE.MIT +24 -24
  705. data/node_modules/through/index.js +108 -108
  706. data/node_modules/through/package.json +36 -36
  707. data/node_modules/through/readme.markdown +64 -64
  708. data/node_modules/through/test/async.js +28 -28
  709. data/node_modules/through/test/auto-destroy.js +30 -30
  710. data/node_modules/through/test/buffering.js +71 -71
  711. data/node_modules/through/test/end.js +45 -45
  712. data/node_modules/through/test/index.js +133 -133
  713. data/node_modules/tr46/.npmignore +4 -0
  714. data/node_modules/tr46/index.js +193 -0
  715. data/node_modules/tr46/lib/.gitkeep +0 -0
  716. data/node_modules/tr46/lib/mappingTable.json +1 -0
  717. data/node_modules/tr46/package.json +31 -0
  718. data/node_modules/unbzip2-stream/LICENSE +24 -24
  719. data/node_modules/unbzip2-stream/README.md +59 -59
  720. data/node_modules/unbzip2-stream/dist/unbzip2-stream.min.js +1 -1
  721. data/node_modules/unbzip2-stream/index.js +93 -92
  722. data/node_modules/unbzip2-stream/lib/bit_iterator.js +39 -39
  723. data/node_modules/unbzip2-stream/lib/bzip2.js +365 -367
  724. data/node_modules/unbzip2-stream/package.json +51 -51
  725. data/node_modules/util-deprecate/History.md +16 -16
  726. data/node_modules/util-deprecate/LICENSE +24 -24
  727. data/node_modules/util-deprecate/README.md +53 -53
  728. data/node_modules/util-deprecate/browser.js +67 -67
  729. data/node_modules/util-deprecate/node.js +6 -6
  730. data/node_modules/util-deprecate/package.json +27 -27
  731. data/node_modules/webidl-conversions/LICENSE.md +12 -0
  732. data/node_modules/webidl-conversions/README.md +53 -0
  733. data/node_modules/webidl-conversions/lib/index.js +189 -0
  734. data/node_modules/webidl-conversions/package.json +23 -0
  735. data/node_modules/whatwg-url/LICENSE.txt +21 -0
  736. data/node_modules/whatwg-url/README.md +67 -0
  737. data/node_modules/whatwg-url/lib/URL-impl.js +200 -0
  738. data/node_modules/whatwg-url/lib/URL.js +196 -0
  739. data/node_modules/whatwg-url/lib/public-api.js +11 -0
  740. data/node_modules/whatwg-url/lib/url-state-machine.js +1297 -0
  741. data/node_modules/whatwg-url/lib/utils.js +20 -0
  742. data/node_modules/whatwg-url/package.json +32 -0
  743. data/node_modules/wrappy/LICENSE +15 -15
  744. data/node_modules/wrappy/README.md +36 -36
  745. data/node_modules/wrappy/package.json +29 -29
  746. data/node_modules/wrappy/wrappy.js +33 -33
  747. data/node_modules/ws/LICENSE +19 -21
  748. data/node_modules/ws/README.md +493 -496
  749. data/node_modules/ws/browser.js +8 -8
  750. data/node_modules/ws/index.js +13 -10
  751. data/node_modules/ws/lib/buffer-util.js +126 -129
  752. data/node_modules/ws/lib/constants.js +12 -10
  753. data/node_modules/ws/lib/event-target.js +266 -184
  754. data/node_modules/ws/lib/extension.js +203 -223
  755. data/node_modules/ws/lib/limiter.js +55 -55
  756. data/node_modules/ws/lib/permessage-deflate.js +511 -517
  757. data/node_modules/ws/lib/receiver.js +612 -507
  758. data/node_modules/ws/lib/sender.js +422 -405
  759. data/node_modules/ws/lib/stream.js +180 -165
  760. data/node_modules/ws/lib/subprotocol.js +62 -0
  761. data/node_modules/ws/lib/validation.js +124 -104
  762. data/node_modules/ws/lib/websocket-server.js +485 -418
  763. data/node_modules/ws/lib/websocket.js +1149 -942
  764. data/node_modules/ws/package.json +61 -56
  765. data/node_modules/ws/wrapper.mjs +8 -0
  766. data/node_modules/yauzl/LICENSE +21 -21
  767. data/node_modules/yauzl/README.md +658 -658
  768. data/node_modules/yauzl/index.js +796 -796
  769. data/node_modules/yauzl/package.json +40 -40
  770. data/package.json +1 -1
  771. metadata +59 -61
  772. data/node_modules/.bin/mkdirp +0 -12
  773. data/node_modules/.bin/mkdirp.cmd +0 -17
  774. data/node_modules/.bin/mkdirp.ps1 +0 -28
  775. data/node_modules/devtools-protocol/changelog.md +0 -10491
  776. data/node_modules/devtools-protocol/externs/protocol_externs.js +0 -9734
  777. data/node_modules/minimist/.travis.yml +0 -8
  778. data/node_modules/minimist/LICENSE +0 -18
  779. data/node_modules/minimist/example/parse.js +0 -2
  780. data/node_modules/minimist/index.js +0 -245
  781. data/node_modules/minimist/package.json +0 -45
  782. data/node_modules/minimist/readme.markdown +0 -95
  783. data/node_modules/minimist/test/all_bool.js +0 -32
  784. data/node_modules/minimist/test/bool.js +0 -178
  785. data/node_modules/minimist/test/dash.js +0 -31
  786. data/node_modules/minimist/test/default_bool.js +0 -35
  787. data/node_modules/minimist/test/dotted.js +0 -22
  788. data/node_modules/minimist/test/kv_short.js +0 -16
  789. data/node_modules/minimist/test/long.js +0 -31
  790. data/node_modules/minimist/test/num.js +0 -36
  791. data/node_modules/minimist/test/parse.js +0 -197
  792. data/node_modules/minimist/test/parse_modified.js +0 -9
  793. data/node_modules/minimist/test/proto.js +0 -44
  794. data/node_modules/minimist/test/short.js +0 -67
  795. data/node_modules/minimist/test/stop_early.js +0 -15
  796. data/node_modules/minimist/test/unknown.js +0 -102
  797. data/node_modules/minimist/test/whitespace.js +0 -8
  798. data/node_modules/mkdirp/bin/cmd.js +0 -33
  799. data/node_modules/mkdirp/bin/usage.txt +0 -12
  800. data/node_modules/mkdirp/package.json +0 -34
  801. data/node_modules/mkdirp/readme.markdown +0 -100
  802. data/node_modules/node-fetch/CHANGELOG.md +0 -272
@@ -1,1181 +1,1181 @@
1
- /**
2
- * A stream is an abstract interface for working with streaming data in Node.js.
3
- * The `stream` module provides an API for implementing the stream interface.
4
- *
5
- * There are many stream objects provided by Node.js. For instance, a `request to an HTTP server` and `process.stdout` are both stream instances.
6
- *
7
- * Streams can be readable, writable, or both. All streams are instances of `EventEmitter`.
8
- *
9
- * To access the `stream` module:
10
- *
11
- * ```js
12
- * const stream = require('stream');
13
- * ```
14
- *
15
- * The `stream` module is useful for creating new types of stream instances. It is
16
- * usually not necessary to use the `stream` module to consume streams.
17
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/stream.js)
18
- */
19
- declare module 'stream' {
20
- import { EventEmitter, Abortable } from 'node:events';
21
- import * as streamPromises from 'node:stream/promises';
22
- import * as streamConsumers from 'node:stream/consumers';
23
- class internal extends EventEmitter {
24
- pipe<T extends NodeJS.WritableStream>(
25
- destination: T,
26
- options?: {
27
- end?: boolean | undefined;
28
- }
29
- ): T;
30
- }
31
- namespace internal {
32
- class Stream extends internal {
33
- constructor(opts?: ReadableOptions);
34
- }
35
- interface StreamOptions<T extends Stream> extends Abortable {
36
- emitClose?: boolean | undefined;
37
- highWaterMark?: number | undefined;
38
- objectMode?: boolean | undefined;
39
- construct?(this: T, callback: (error?: Error | null) => void): void;
40
- destroy?(this: T, error: Error | null, callback: (error: Error | null) => void): void;
41
- autoDestroy?: boolean | undefined;
42
- }
43
- interface ReadableOptions extends StreamOptions<Readable> {
44
- encoding?: BufferEncoding | undefined;
45
- read?(this: Readable, size: number): void;
46
- }
47
- /**
48
- * @since v0.9.4
49
- */
50
- class Readable extends Stream implements NodeJS.ReadableStream {
51
- /**
52
- * A utility method for creating Readable Streams out of iterators.
53
- */
54
- static from(iterable: Iterable<any> | AsyncIterable<any>, options?: ReadableOptions): Readable;
55
- /**
56
- * Is `true` if it is safe to call `readable.read()`, which means
57
- * the stream has not been destroyed or emitted `'error'` or `'end'`.
58
- * @since v11.4.0
59
- */
60
- readable: boolean;
61
- /**
62
- * Getter for the property `encoding` of a given `Readable` stream. The `encoding`property can be set using the `readable.setEncoding()` method.
63
- * @since v12.7.0
64
- */
65
- readonly readableEncoding: BufferEncoding | null;
66
- /**
67
- * Becomes `true` when `'end'` event is emitted.
68
- * @since v12.9.0
69
- */
70
- readonly readableEnded: boolean;
71
- /**
72
- * This property reflects the current state of a `Readable` stream as described
73
- * in the `Three states` section.
74
- * @since v9.4.0
75
- */
76
- readonly readableFlowing: boolean | null;
77
- /**
78
- * Returns the value of `highWaterMark` passed when creating this `Readable`.
79
- * @since v9.3.0
80
- */
81
- readonly readableHighWaterMark: number;
82
- /**
83
- * This property contains the number of bytes (or objects) in the queue
84
- * ready to be read. The value provides introspection data regarding
85
- * the status of the `highWaterMark`.
86
- * @since v9.4.0
87
- */
88
- readonly readableLength: number;
89
- /**
90
- * Getter for the property `objectMode` of a given `Readable` stream.
91
- * @since v12.3.0
92
- */
93
- readonly readableObjectMode: boolean;
94
- /**
95
- * Is `true` after `readable.destroy()` has been called.
96
- * @since v8.0.0
97
- */
98
- destroyed: boolean;
99
- constructor(opts?: ReadableOptions);
100
- _construct?(callback: (error?: Error | null) => void): void;
101
- _read(size: number): void;
102
- /**
103
- * The `readable.read()` method pulls some data out of the internal buffer and
104
- * returns it. If no data available to be read, `null` is returned. By default,
105
- * the data will be returned as a `Buffer` object unless an encoding has been
106
- * specified using the `readable.setEncoding()` method or the stream is operating
107
- * in object mode.
108
- *
109
- * The optional `size` argument specifies a specific number of bytes to read. If`size` bytes are not available to be read, `null` will be returned _unless_the stream has ended, in which
110
- * case all of the data remaining in the internal
111
- * buffer will be returned.
112
- *
113
- * If the `size` argument is not specified, all of the data contained in the
114
- * internal buffer will be returned.
115
- *
116
- * The `size` argument must be less than or equal to 1 GiB.
117
- *
118
- * The `readable.read()` method should only be called on `Readable` streams
119
- * operating in paused mode. In flowing mode, `readable.read()` is called
120
- * automatically until the internal buffer is fully drained.
121
- *
122
- * ```js
123
- * const readable = getReadableStreamSomehow();
124
- *
125
- * // 'readable' may be triggered multiple times as data is buffered in
126
- * readable.on('readable', () => {
127
- * let chunk;
128
- * console.log('Stream is readable (new data received in buffer)');
129
- * // Use a loop to make sure we read all currently available data
130
- * while (null !== (chunk = readable.read())) {
131
- * console.log(`Read ${chunk.length} bytes of data...`);
132
- * }
133
- * });
134
- *
135
- * // 'end' will be triggered once when there is no more data available
136
- * readable.on('end', () => {
137
- * console.log('Reached end of stream.');
138
- * });
139
- * ```
140
- *
141
- * Each call to `readable.read()` returns a chunk of data, or `null`. The chunks
142
- * are not concatenated. A `while` loop is necessary to consume all data
143
- * currently in the buffer. When reading a large file `.read()` may return `null`,
144
- * having consumed all buffered content so far, but there is still more data to
145
- * come not yet buffered. In this case a new `'readable'` event will be emitted
146
- * when there is more data in the buffer. Finally the `'end'` event will be
147
- * emitted when there is no more data to come.
148
- *
149
- * Therefore to read a file's whole contents from a `readable`, it is necessary
150
- * to collect chunks across multiple `'readable'` events:
151
- *
152
- * ```js
153
- * const chunks = [];
154
- *
155
- * readable.on('readable', () => {
156
- * let chunk;
157
- * while (null !== (chunk = readable.read())) {
158
- * chunks.push(chunk);
159
- * }
160
- * });
161
- *
162
- * readable.on('end', () => {
163
- * const content = chunks.join('');
164
- * });
165
- * ```
166
- *
167
- * A `Readable` stream in object mode will always return a single item from
168
- * a call to `readable.read(size)`, regardless of the value of the`size` argument.
169
- *
170
- * If the `readable.read()` method returns a chunk of data, a `'data'` event will
171
- * also be emitted.
172
- *
173
- * Calling {@link read} after the `'end'` event has
174
- * been emitted will return `null`. No runtime error will be raised.
175
- * @since v0.9.4
176
- * @param size Optional argument to specify how much data to read.
177
- */
178
- read(size?: number): any;
179
- /**
180
- * The `readable.setEncoding()` method sets the character encoding for
181
- * data read from the `Readable` stream.
182
- *
183
- * By default, no encoding is assigned and stream data will be returned as`Buffer` objects. Setting an encoding causes the stream data
184
- * to be returned as strings of the specified encoding rather than as `Buffer`objects. For instance, calling `readable.setEncoding('utf8')` will cause the
185
- * output data to be interpreted as UTF-8 data, and passed as strings. Calling`readable.setEncoding('hex')` will cause the data to be encoded in hexadecimal
186
- * string format.
187
- *
188
- * The `Readable` stream will properly handle multi-byte characters delivered
189
- * through the stream that would otherwise become improperly decoded if simply
190
- * pulled from the stream as `Buffer` objects.
191
- *
192
- * ```js
193
- * const readable = getReadableStreamSomehow();
194
- * readable.setEncoding('utf8');
195
- * readable.on('data', (chunk) => {
196
- * assert.equal(typeof chunk, 'string');
197
- * console.log('Got %d characters of string data:', chunk.length);
198
- * });
199
- * ```
200
- * @since v0.9.4
201
- * @param encoding The encoding to use.
202
- */
203
- setEncoding(encoding: BufferEncoding): this;
204
- /**
205
- * The `readable.pause()` method will cause a stream in flowing mode to stop
206
- * emitting `'data'` events, switching out of flowing mode. Any data that
207
- * becomes available will remain in the internal buffer.
208
- *
209
- * ```js
210
- * const readable = getReadableStreamSomehow();
211
- * readable.on('data', (chunk) => {
212
- * console.log(`Received ${chunk.length} bytes of data.`);
213
- * readable.pause();
214
- * console.log('There will be no additional data for 1 second.');
215
- * setTimeout(() => {
216
- * console.log('Now data will start flowing again.');
217
- * readable.resume();
218
- * }, 1000);
219
- * });
220
- * ```
221
- *
222
- * The `readable.pause()` method has no effect if there is a `'readable'`event listener.
223
- * @since v0.9.4
224
- */
225
- pause(): this;
226
- /**
227
- * The `readable.resume()` method causes an explicitly paused `Readable` stream to
228
- * resume emitting `'data'` events, switching the stream into flowing mode.
229
- *
230
- * The `readable.resume()` method can be used to fully consume the data from a
231
- * stream without actually processing any of that data:
232
- *
233
- * ```js
234
- * getReadableStreamSomehow()
235
- * .resume()
236
- * .on('end', () => {
237
- * console.log('Reached the end, but did not read anything.');
238
- * });
239
- * ```
240
- *
241
- * The `readable.resume()` method has no effect if there is a `'readable'`event listener.
242
- * @since v0.9.4
243
- */
244
- resume(): this;
245
- /**
246
- * The `readable.isPaused()` method returns the current operating state of the`Readable`. This is used primarily by the mechanism that underlies the`readable.pipe()` method. In most
247
- * typical cases, there will be no reason to
248
- * use this method directly.
249
- *
250
- * ```js
251
- * const readable = new stream.Readable();
252
- *
253
- * readable.isPaused(); // === false
254
- * readable.pause();
255
- * readable.isPaused(); // === true
256
- * readable.resume();
257
- * readable.isPaused(); // === false
258
- * ```
259
- * @since v0.11.14
260
- */
261
- isPaused(): boolean;
262
- /**
263
- * The `readable.unpipe()` method detaches a `Writable` stream previously attached
264
- * using the {@link pipe} method.
265
- *
266
- * If the `destination` is not specified, then _all_ pipes are detached.
267
- *
268
- * If the `destination` is specified, but no pipe is set up for it, then
269
- * the method does nothing.
270
- *
271
- * ```js
272
- * const fs = require('fs');
273
- * const readable = getReadableStreamSomehow();
274
- * const writable = fs.createWriteStream('file.txt');
275
- * // All the data from readable goes into 'file.txt',
276
- * // but only for the first second.
277
- * readable.pipe(writable);
278
- * setTimeout(() => {
279
- * console.log('Stop writing to file.txt.');
280
- * readable.unpipe(writable);
281
- * console.log('Manually close the file stream.');
282
- * writable.end();
283
- * }, 1000);
284
- * ```
285
- * @since v0.9.4
286
- * @param destination Optional specific stream to unpipe
287
- */
288
- unpipe(destination?: NodeJS.WritableStream): this;
289
- /**
290
- * Passing `chunk` as `null` signals the end of the stream (EOF) and behaves the
291
- * same as `readable.push(null)`, after which no more data can be written. The EOF
292
- * signal is put at the end of the buffer and any buffered data will still be
293
- * flushed.
294
- *
295
- * The `readable.unshift()` method pushes a chunk of data back into the internal
296
- * buffer. This is useful in certain situations where a stream is being consumed by
297
- * code that needs to "un-consume" some amount of data that it has optimistically
298
- * pulled out of the source, so that the data can be passed on to some other party.
299
- *
300
- * The `stream.unshift(chunk)` method cannot be called after the `'end'` event
301
- * has been emitted or a runtime error will be thrown.
302
- *
303
- * Developers using `stream.unshift()` often should consider switching to
304
- * use of a `Transform` stream instead. See the `API for stream implementers` section for more information.
305
- *
306
- * ```js
307
- * // Pull off a header delimited by \n\n.
308
- * // Use unshift() if we get too much.
309
- * // Call the callback with (error, header, stream).
310
- * const { StringDecoder } = require('string_decoder');
311
- * function parseHeader(stream, callback) {
312
- * stream.on('error', callback);
313
- * stream.on('readable', onReadable);
314
- * const decoder = new StringDecoder('utf8');
315
- * let header = '';
316
- * function onReadable() {
317
- * let chunk;
318
- * while (null !== (chunk = stream.read())) {
319
- * const str = decoder.write(chunk);
320
- * if (str.match(/\n\n/)) {
321
- * // Found the header boundary.
322
- * const split = str.split(/\n\n/);
323
- * header += split.shift();
324
- * const remaining = split.join('\n\n');
325
- * const buf = Buffer.from(remaining, 'utf8');
326
- * stream.removeListener('error', callback);
327
- * // Remove the 'readable' listener before unshifting.
328
- * stream.removeListener('readable', onReadable);
329
- * if (buf.length)
330
- * stream.unshift(buf);
331
- * // Now the body of the message can be read from the stream.
332
- * callback(null, header, stream);
333
- * } else {
334
- * // Still reading the header.
335
- * header += str;
336
- * }
337
- * }
338
- * }
339
- * }
340
- * ```
341
- *
342
- * Unlike {@link push}, `stream.unshift(chunk)` will not
343
- * end the reading process by resetting the internal reading state of the stream.
344
- * This can cause unexpected results if `readable.unshift()` is called during a
345
- * read (i.e. from within a {@link _read} implementation on a
346
- * custom stream). Following the call to `readable.unshift()` with an immediate {@link push} will reset the reading state appropriately,
347
- * however it is best to simply avoid calling `readable.unshift()` while in the
348
- * process of performing a read.
349
- * @since v0.9.11
350
- * @param chunk Chunk of data to unshift onto the read queue. For streams not operating in object mode, `chunk` must be a string, `Buffer`, `Uint8Array` or `null`. For object mode
351
- * streams, `chunk` may be any JavaScript value.
352
- * @param encoding Encoding of string chunks. Must be a valid `Buffer` encoding, such as `'utf8'` or `'ascii'`.
353
- */
354
- unshift(chunk: any, encoding?: BufferEncoding): void;
355
- /**
356
- * Prior to Node.js 0.10, streams did not implement the entire `stream` module API
357
- * as it is currently defined. (See `Compatibility` for more information.)
358
- *
359
- * When using an older Node.js library that emits `'data'` events and has a {@link pause} method that is advisory only, the`readable.wrap()` method can be used to create a `Readable`
360
- * stream that uses
361
- * the old stream as its data source.
362
- *
363
- * It will rarely be necessary to use `readable.wrap()` but the method has been
364
- * provided as a convenience for interacting with older Node.js applications and
365
- * libraries.
366
- *
367
- * ```js
368
- * const { OldReader } = require('./old-api-module.js');
369
- * const { Readable } = require('stream');
370
- * const oreader = new OldReader();
371
- * const myReader = new Readable().wrap(oreader);
372
- *
373
- * myReader.on('readable', () => {
374
- * myReader.read(); // etc.
375
- * });
376
- * ```
377
- * @since v0.9.4
378
- * @param stream An "old style" readable stream
379
- */
380
- wrap(stream: NodeJS.ReadableStream): this;
381
- push(chunk: any, encoding?: BufferEncoding): boolean;
382
- _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
383
- /**
384
- * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the readable
385
- * stream will release any internal resources and subsequent calls to `push()`will be ignored.
386
- *
387
- * Once `destroy()` has been called any further calls will be a no-op and no
388
- * further errors except from `_destroy()` may be emitted as `'error'`.
389
- *
390
- * Implementors should not override this method, but instead implement `readable._destroy()`.
391
- * @since v8.0.0
392
- * @param error Error which will be passed as payload in `'error'` event
393
- */
394
- destroy(error?: Error): void;
395
- /**
396
- * Event emitter
397
- * The defined events on documents including:
398
- * 1. close
399
- * 2. data
400
- * 3. end
401
- * 4. error
402
- * 5. pause
403
- * 6. readable
404
- * 7. resume
405
- */
406
- addListener(event: 'close', listener: () => void): this;
407
- addListener(event: 'data', listener: (chunk: any) => void): this;
408
- addListener(event: 'end', listener: () => void): this;
409
- addListener(event: 'error', listener: (err: Error) => void): this;
410
- addListener(event: 'pause', listener: () => void): this;
411
- addListener(event: 'readable', listener: () => void): this;
412
- addListener(event: 'resume', listener: () => void): this;
413
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
414
- emit(event: 'close'): boolean;
415
- emit(event: 'data', chunk: any): boolean;
416
- emit(event: 'end'): boolean;
417
- emit(event: 'error', err: Error): boolean;
418
- emit(event: 'pause'): boolean;
419
- emit(event: 'readable'): boolean;
420
- emit(event: 'resume'): boolean;
421
- emit(event: string | symbol, ...args: any[]): boolean;
422
- on(event: 'close', listener: () => void): this;
423
- on(event: 'data', listener: (chunk: any) => void): this;
424
- on(event: 'end', listener: () => void): this;
425
- on(event: 'error', listener: (err: Error) => void): this;
426
- on(event: 'pause', listener: () => void): this;
427
- on(event: 'readable', listener: () => void): this;
428
- on(event: 'resume', listener: () => void): this;
429
- on(event: string | symbol, listener: (...args: any[]) => void): this;
430
- once(event: 'close', listener: () => void): this;
431
- once(event: 'data', listener: (chunk: any) => void): this;
432
- once(event: 'end', listener: () => void): this;
433
- once(event: 'error', listener: (err: Error) => void): this;
434
- once(event: 'pause', listener: () => void): this;
435
- once(event: 'readable', listener: () => void): this;
436
- once(event: 'resume', listener: () => void): this;
437
- once(event: string | symbol, listener: (...args: any[]) => void): this;
438
- prependListener(event: 'close', listener: () => void): this;
439
- prependListener(event: 'data', listener: (chunk: any) => void): this;
440
- prependListener(event: 'end', listener: () => void): this;
441
- prependListener(event: 'error', listener: (err: Error) => void): this;
442
- prependListener(event: 'pause', listener: () => void): this;
443
- prependListener(event: 'readable', listener: () => void): this;
444
- prependListener(event: 'resume', listener: () => void): this;
445
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
446
- prependOnceListener(event: 'close', listener: () => void): this;
447
- prependOnceListener(event: 'data', listener: (chunk: any) => void): this;
448
- prependOnceListener(event: 'end', listener: () => void): this;
449
- prependOnceListener(event: 'error', listener: (err: Error) => void): this;
450
- prependOnceListener(event: 'pause', listener: () => void): this;
451
- prependOnceListener(event: 'readable', listener: () => void): this;
452
- prependOnceListener(event: 'resume', listener: () => void): this;
453
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
454
- removeListener(event: 'close', listener: () => void): this;
455
- removeListener(event: 'data', listener: (chunk: any) => void): this;
456
- removeListener(event: 'end', listener: () => void): this;
457
- removeListener(event: 'error', listener: (err: Error) => void): this;
458
- removeListener(event: 'pause', listener: () => void): this;
459
- removeListener(event: 'readable', listener: () => void): this;
460
- removeListener(event: 'resume', listener: () => void): this;
461
- removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
462
- [Symbol.asyncIterator](): AsyncIterableIterator<any>;
463
- }
464
- interface WritableOptions extends StreamOptions<Writable> {
465
- decodeStrings?: boolean | undefined;
466
- defaultEncoding?: BufferEncoding | undefined;
467
- write?(this: Writable, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
468
- writev?(
469
- this: Writable,
470
- chunks: Array<{
471
- chunk: any;
472
- encoding: BufferEncoding;
473
- }>,
474
- callback: (error?: Error | null) => void
475
- ): void;
476
- final?(this: Writable, callback: (error?: Error | null) => void): void;
477
- }
478
- /**
479
- * @since v0.9.4
480
- */
481
- class Writable extends Stream implements NodeJS.WritableStream {
482
- /**
483
- * Is `true` if it is safe to call `writable.write()`, which means
484
- * the stream has not been destroyed, errored or ended.
485
- * @since v11.4.0
486
- */
487
- readonly writable: boolean;
488
- /**
489
- * Is `true` after `writable.end()` has been called. This property
490
- * does not indicate whether the data has been flushed, for this use `writable.writableFinished` instead.
491
- * @since v12.9.0
492
- */
493
- readonly writableEnded: boolean;
494
- /**
495
- * Is set to `true` immediately before the `'finish'` event is emitted.
496
- * @since v12.6.0
497
- */
498
- readonly writableFinished: boolean;
499
- /**
500
- * Return the value of `highWaterMark` passed when creating this `Writable`.
501
- * @since v9.3.0
502
- */
503
- readonly writableHighWaterMark: number;
504
- /**
505
- * This property contains the number of bytes (or objects) in the queue
506
- * ready to be written. The value provides introspection data regarding
507
- * the status of the `highWaterMark`.
508
- * @since v9.4.0
509
- */
510
- readonly writableLength: number;
511
- /**
512
- * Getter for the property `objectMode` of a given `Writable` stream.
513
- * @since v12.3.0
514
- */
515
- readonly writableObjectMode: boolean;
516
- /**
517
- * Number of times `writable.uncork()` needs to be
518
- * called in order to fully uncork the stream.
519
- * @since v13.2.0, v12.16.0
520
- */
521
- readonly writableCorked: number;
522
- /**
523
- * Is `true` after `writable.destroy()` has been called.
524
- * @since v8.0.0
525
- */
526
- destroyed: boolean;
527
- constructor(opts?: WritableOptions);
528
- _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
529
- _writev?(
530
- chunks: Array<{
531
- chunk: any;
532
- encoding: BufferEncoding;
533
- }>,
534
- callback: (error?: Error | null) => void
535
- ): void;
536
- _construct?(callback: (error?: Error | null) => void): void;
537
- _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
538
- _final(callback: (error?: Error | null) => void): void;
539
- /**
540
- * The `writable.write()` method writes some data to the stream, and calls the
541
- * supplied `callback` once the data has been fully handled. If an error
542
- * occurs, the `callback` will be called with the error as its
543
- * first argument. The `callback` is called asynchronously and before `'error'` is
544
- * emitted.
545
- *
546
- * The return value is `true` if the internal buffer is less than the`highWaterMark` configured when the stream was created after admitting `chunk`.
547
- * If `false` is returned, further attempts to write data to the stream should
548
- * stop until the `'drain'` event is emitted.
549
- *
550
- * While a stream is not draining, calls to `write()` will buffer `chunk`, and
551
- * return false. Once all currently buffered chunks are drained (accepted for
552
- * delivery by the operating system), the `'drain'` event will be emitted.
553
- * It is recommended that once `write()` returns false, no more chunks be written
554
- * until the `'drain'` event is emitted. While calling `write()` on a stream that
555
- * is not draining is allowed, Node.js will buffer all written chunks until
556
- * maximum memory usage occurs, at which point it will abort unconditionally.
557
- * Even before it aborts, high memory usage will cause poor garbage collector
558
- * performance and high RSS (which is not typically released back to the system,
559
- * even after the memory is no longer required). Since TCP sockets may never
560
- * drain if the remote peer does not read the data, writing a socket that is
561
- * not draining may lead to a remotely exploitable vulnerability.
562
- *
563
- * Writing data while the stream is not draining is particularly
564
- * problematic for a `Transform`, because the `Transform` streams are paused
565
- * by default until they are piped or a `'data'` or `'readable'` event handler
566
- * is added.
567
- *
568
- * If the data to be written can be generated or fetched on demand, it is
569
- * recommended to encapsulate the logic into a `Readable` and use {@link pipe}. However, if calling `write()` is preferred, it is
570
- * possible to respect backpressure and avoid memory issues using the `'drain'` event:
571
- *
572
- * ```js
573
- * function write(data, cb) {
574
- * if (!stream.write(data)) {
575
- * stream.once('drain', cb);
576
- * } else {
577
- * process.nextTick(cb);
578
- * }
579
- * }
580
- *
581
- * // Wait for cb to be called before doing any other write.
582
- * write('hello', () => {
583
- * console.log('Write completed, do more writes now.');
584
- * });
585
- * ```
586
- *
587
- * A `Writable` stream in object mode will always ignore the `encoding` argument.
588
- * @since v0.9.4
589
- * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any
590
- * JavaScript value other than `null`.
591
- * @param [encoding='utf8'] The encoding, if `chunk` is a string.
592
- * @param callback Callback for when this chunk of data is flushed.
593
- * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.
594
- */
595
- write(chunk: any, callback?: (error: Error | null | undefined) => void): boolean;
596
- write(chunk: any, encoding: BufferEncoding, callback?: (error: Error | null | undefined) => void): boolean;
597
- /**
598
- * The `writable.setDefaultEncoding()` method sets the default `encoding` for a `Writable` stream.
599
- * @since v0.11.15
600
- * @param encoding The new default encoding
601
- */
602
- setDefaultEncoding(encoding: BufferEncoding): this;
603
- /**
604
- * Calling the `writable.end()` method signals that no more data will be written
605
- * to the `Writable`. The optional `chunk` and `encoding` arguments allow one
606
- * final additional chunk of data to be written immediately before closing the
607
- * stream.
608
- *
609
- * Calling the {@link write} method after calling {@link end} will raise an error.
610
- *
611
- * ```js
612
- * // Write 'hello, ' and then end with 'world!'.
613
- * const fs = require('fs');
614
- * const file = fs.createWriteStream('example.txt');
615
- * file.write('hello, ');
616
- * file.end('world!');
617
- * // Writing more now is not allowed!
618
- * ```
619
- * @since v0.9.4
620
- * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any
621
- * JavaScript value other than `null`.
622
- * @param encoding The encoding if `chunk` is a string
623
- * @param callback Callback for when the stream is finished.
624
- */
625
- end(cb?: () => void): void;
626
- end(chunk: any, cb?: () => void): void;
627
- end(chunk: any, encoding: BufferEncoding, cb?: () => void): void;
628
- /**
629
- * The `writable.cork()` method forces all written data to be buffered in memory.
630
- * The buffered data will be flushed when either the {@link uncork} or {@link end} methods are called.
631
- *
632
- * The primary intent of `writable.cork()` is to accommodate a situation in which
633
- * several small chunks are written to the stream in rapid succession. Instead of
634
- * immediately forwarding them to the underlying destination, `writable.cork()`buffers all the chunks until `writable.uncork()` is called, which will pass them
635
- * all to `writable._writev()`, if present. This prevents a head-of-line blocking
636
- * situation where data is being buffered while waiting for the first small chunk
637
- * to be processed. However, use of `writable.cork()` without implementing`writable._writev()` may have an adverse effect on throughput.
638
- *
639
- * See also: `writable.uncork()`, `writable._writev()`.
640
- * @since v0.11.2
641
- */
642
- cork(): void;
643
- /**
644
- * The `writable.uncork()` method flushes all data buffered since {@link cork} was called.
645
- *
646
- * When using `writable.cork()` and `writable.uncork()` to manage the buffering
647
- * of writes to a stream, it is recommended that calls to `writable.uncork()` be
648
- * deferred using `process.nextTick()`. Doing so allows batching of all`writable.write()` calls that occur within a given Node.js event loop phase.
649
- *
650
- * ```js
651
- * stream.cork();
652
- * stream.write('some ');
653
- * stream.write('data ');
654
- * process.nextTick(() => stream.uncork());
655
- * ```
656
- *
657
- * If the `writable.cork()` method is called multiple times on a stream, the
658
- * same number of calls to `writable.uncork()` must be called to flush the buffered
659
- * data.
660
- *
661
- * ```js
662
- * stream.cork();
663
- * stream.write('some ');
664
- * stream.cork();
665
- * stream.write('data ');
666
- * process.nextTick(() => {
667
- * stream.uncork();
668
- * // The data will not be flushed until uncork() is called a second time.
669
- * stream.uncork();
670
- * });
671
- * ```
672
- *
673
- * See also: `writable.cork()`.
674
- * @since v0.11.2
675
- */
676
- uncork(): void;
677
- /**
678
- * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the writable
679
- * stream has ended and subsequent calls to `write()` or `end()` will result in
680
- * an `ERR_STREAM_DESTROYED` error.
681
- * This is a destructive and immediate way to destroy a stream. Previous calls to`write()` may not have drained, and may trigger an `ERR_STREAM_DESTROYED` error.
682
- * Use `end()` instead of destroy if data should flush before close, or wait for
683
- * the `'drain'` event before destroying the stream.
684
- *
685
- * Once `destroy()` has been called any further calls will be a no-op and no
686
- * further errors except from `_destroy()` may be emitted as `'error'`.
687
- *
688
- * Implementors should not override this method,
689
- * but instead implement `writable._destroy()`.
690
- * @since v8.0.0
691
- * @param error Optional, an error to emit with `'error'` event.
692
- */
693
- destroy(error?: Error): void;
694
- /**
695
- * Event emitter
696
- * The defined events on documents including:
697
- * 1. close
698
- * 2. drain
699
- * 3. error
700
- * 4. finish
701
- * 5. pipe
702
- * 6. unpipe
703
- */
704
- addListener(event: 'close', listener: () => void): this;
705
- addListener(event: 'drain', listener: () => void): this;
706
- addListener(event: 'error', listener: (err: Error) => void): this;
707
- addListener(event: 'finish', listener: () => void): this;
708
- addListener(event: 'pipe', listener: (src: Readable) => void): this;
709
- addListener(event: 'unpipe', listener: (src: Readable) => void): this;
710
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
711
- emit(event: 'close'): boolean;
712
- emit(event: 'drain'): boolean;
713
- emit(event: 'error', err: Error): boolean;
714
- emit(event: 'finish'): boolean;
715
- emit(event: 'pipe', src: Readable): boolean;
716
- emit(event: 'unpipe', src: Readable): boolean;
717
- emit(event: string | symbol, ...args: any[]): boolean;
718
- on(event: 'close', listener: () => void): this;
719
- on(event: 'drain', listener: () => void): this;
720
- on(event: 'error', listener: (err: Error) => void): this;
721
- on(event: 'finish', listener: () => void): this;
722
- on(event: 'pipe', listener: (src: Readable) => void): this;
723
- on(event: 'unpipe', listener: (src: Readable) => void): this;
724
- on(event: string | symbol, listener: (...args: any[]) => void): this;
725
- once(event: 'close', listener: () => void): this;
726
- once(event: 'drain', listener: () => void): this;
727
- once(event: 'error', listener: (err: Error) => void): this;
728
- once(event: 'finish', listener: () => void): this;
729
- once(event: 'pipe', listener: (src: Readable) => void): this;
730
- once(event: 'unpipe', listener: (src: Readable) => void): this;
731
- once(event: string | symbol, listener: (...args: any[]) => void): this;
732
- prependListener(event: 'close', listener: () => void): this;
733
- prependListener(event: 'drain', listener: () => void): this;
734
- prependListener(event: 'error', listener: (err: Error) => void): this;
735
- prependListener(event: 'finish', listener: () => void): this;
736
- prependListener(event: 'pipe', listener: (src: Readable) => void): this;
737
- prependListener(event: 'unpipe', listener: (src: Readable) => void): this;
738
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
739
- prependOnceListener(event: 'close', listener: () => void): this;
740
- prependOnceListener(event: 'drain', listener: () => void): this;
741
- prependOnceListener(event: 'error', listener: (err: Error) => void): this;
742
- prependOnceListener(event: 'finish', listener: () => void): this;
743
- prependOnceListener(event: 'pipe', listener: (src: Readable) => void): this;
744
- prependOnceListener(event: 'unpipe', listener: (src: Readable) => void): this;
745
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
746
- removeListener(event: 'close', listener: () => void): this;
747
- removeListener(event: 'drain', listener: () => void): this;
748
- removeListener(event: 'error', listener: (err: Error) => void): this;
749
- removeListener(event: 'finish', listener: () => void): this;
750
- removeListener(event: 'pipe', listener: (src: Readable) => void): this;
751
- removeListener(event: 'unpipe', listener: (src: Readable) => void): this;
752
- removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
753
- }
754
- interface DuplexOptions extends ReadableOptions, WritableOptions {
755
- allowHalfOpen?: boolean | undefined;
756
- readableObjectMode?: boolean | undefined;
757
- writableObjectMode?: boolean | undefined;
758
- readableHighWaterMark?: number | undefined;
759
- writableHighWaterMark?: number | undefined;
760
- writableCorked?: number | undefined;
761
- construct?(this: Duplex, callback: (error?: Error | null) => void): void;
762
- read?(this: Duplex, size: number): void;
763
- write?(this: Duplex, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
764
- writev?(
765
- this: Duplex,
766
- chunks: Array<{
767
- chunk: any;
768
- encoding: BufferEncoding;
769
- }>,
770
- callback: (error?: Error | null) => void
771
- ): void;
772
- final?(this: Duplex, callback: (error?: Error | null) => void): void;
773
- destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void;
774
- }
775
- /**
776
- * Duplex streams are streams that implement both the `Readable` and `Writable` interfaces.
777
- *
778
- * Examples of `Duplex` streams include:
779
- *
780
- * * `TCP sockets`
781
- * * `zlib streams`
782
- * * `crypto streams`
783
- * @since v0.9.4
784
- */
785
- class Duplex extends Readable implements Writable {
786
- readonly writable: boolean;
787
- readonly writableEnded: boolean;
788
- readonly writableFinished: boolean;
789
- readonly writableHighWaterMark: number;
790
- readonly writableLength: number;
791
- readonly writableObjectMode: boolean;
792
- readonly writableCorked: number;
793
- allowHalfOpen: boolean;
794
- constructor(opts?: DuplexOptions);
795
- _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
796
- _writev?(
797
- chunks: Array<{
798
- chunk: any;
799
- encoding: BufferEncoding;
800
- }>,
801
- callback: (error?: Error | null) => void
802
- ): void;
803
- _destroy(error: Error | null, callback: (error: Error | null) => void): void;
804
- _final(callback: (error?: Error | null) => void): void;
805
- write(chunk: any, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean;
806
- write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean;
807
- setDefaultEncoding(encoding: BufferEncoding): this;
808
- end(cb?: () => void): void;
809
- end(chunk: any, cb?: () => void): void;
810
- end(chunk: any, encoding?: BufferEncoding, cb?: () => void): void;
811
- cork(): void;
812
- uncork(): void;
813
- }
814
- type TransformCallback = (error?: Error | null, data?: any) => void;
815
- interface TransformOptions extends DuplexOptions {
816
- construct?(this: Transform, callback: (error?: Error | null) => void): void;
817
- read?(this: Transform, size: number): void;
818
- write?(this: Transform, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
819
- writev?(
820
- this: Transform,
821
- chunks: Array<{
822
- chunk: any;
823
- encoding: BufferEncoding;
824
- }>,
825
- callback: (error?: Error | null) => void
826
- ): void;
827
- final?(this: Transform, callback: (error?: Error | null) => void): void;
828
- destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void;
829
- transform?(this: Transform, chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;
830
- flush?(this: Transform, callback: TransformCallback): void;
831
- }
832
- /**
833
- * Transform streams are `Duplex` streams where the output is in some way
834
- * related to the input. Like all `Duplex` streams, `Transform` streams
835
- * implement both the `Readable` and `Writable` interfaces.
836
- *
837
- * Examples of `Transform` streams include:
838
- *
839
- * * `zlib streams`
840
- * * `crypto streams`
841
- * @since v0.9.4
842
- */
843
- class Transform extends Duplex {
844
- constructor(opts?: TransformOptions);
845
- _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;
846
- _flush(callback: TransformCallback): void;
847
- }
848
- /**
849
- * The `stream.PassThrough` class is a trivial implementation of a `Transform` stream that simply passes the input bytes across to the output. Its purpose is
850
- * primarily for examples and testing, but there are some use cases where`stream.PassThrough` is useful as a building block for novel sorts of streams.
851
- */
852
- class PassThrough extends Transform {}
853
- /**
854
- * Attaches an AbortSignal to a readable or writeable stream. This lets code
855
- * control stream destruction using an `AbortController`.
856
- *
857
- * Calling `abort` on the `AbortController` corresponding to the passed`AbortSignal` will behave the same way as calling `.destroy(new AbortError())`on the stream.
858
- *
859
- * ```js
860
- * const fs = require('fs');
861
- *
862
- * const controller = new AbortController();
863
- * const read = addAbortSignal(
864
- * controller.signal,
865
- * fs.createReadStream(('object.json'))
866
- * );
867
- * // Later, abort the operation closing the stream
868
- * controller.abort();
869
- * ```
870
- *
871
- * Or using an `AbortSignal` with a readable stream as an async iterable:
872
- *
873
- * ```js
874
- * const controller = new AbortController();
875
- * setTimeout(() => controller.abort(), 10_000); // set a timeout
876
- * const stream = addAbortSignal(
877
- * controller.signal,
878
- * fs.createReadStream(('object.json'))
879
- * );
880
- * (async () => {
881
- * try {
882
- * for await (const chunk of stream) {
883
- * await process(chunk);
884
- * }
885
- * } catch (e) {
886
- * if (e.name === 'AbortError') {
887
- * // The operation was cancelled
888
- * } else {
889
- * throw e;
890
- * }
891
- * }
892
- * })();
893
- * ```
894
- * @since v15.4.0
895
- * @param signal A signal representing possible cancellation
896
- * @param stream a stream to attach a signal to
897
- */
898
- function addAbortSignal<T extends Stream>(signal: AbortSignal, stream: T): T;
899
- interface FinishedOptions extends Abortable {
900
- error?: boolean | undefined;
901
- readable?: boolean | undefined;
902
- writable?: boolean | undefined;
903
- }
904
- /**
905
- * A function to get notified when a stream is no longer readable, writable
906
- * or has experienced an error or a premature close event.
907
- *
908
- * ```js
909
- * const { finished } = require('stream');
910
- *
911
- * const rs = fs.createReadStream('archive.tar');
912
- *
913
- * finished(rs, (err) => {
914
- * if (err) {
915
- * console.error('Stream failed.', err);
916
- * } else {
917
- * console.log('Stream is done reading.');
918
- * }
919
- * });
920
- *
921
- * rs.resume(); // Drain the stream.
922
- * ```
923
- *
924
- * Especially useful in error handling scenarios where a stream is destroyed
925
- * prematurely (like an aborted HTTP request), and will not emit `'end'`or `'finish'`.
926
- *
927
- * The `finished` API provides promise version:
928
- *
929
- * ```js
930
- * const { finished } = require('stream/promises');
931
- *
932
- * const rs = fs.createReadStream('archive.tar');
933
- *
934
- * async function run() {
935
- * await finished(rs);
936
- * console.log('Stream is done reading.');
937
- * }
938
- *
939
- * run().catch(console.error);
940
- * rs.resume(); // Drain the stream.
941
- * ```
942
- *
943
- * `stream.finished()` leaves dangling event listeners (in particular`'error'`, `'end'`, `'finish'` and `'close'`) after `callback` has been
944
- * invoked. The reason for this is so that unexpected `'error'` events (due to
945
- * incorrect stream implementations) do not cause unexpected crashes.
946
- * If this is unwanted behavior then the returned cleanup function needs to be
947
- * invoked in the callback:
948
- *
949
- * ```js
950
- * const cleanup = finished(rs, (err) => {
951
- * cleanup();
952
- * // ...
953
- * });
954
- * ```
955
- * @since v10.0.0
956
- * @param stream A readable and/or writable stream.
957
- * @param callback A callback function that takes an optional error argument.
958
- * @return A cleanup function which removes all registered listeners.
959
- */
960
- function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options: FinishedOptions, callback: (err?: NodeJS.ErrnoException | null) => void): () => void;
961
- function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException | null) => void): () => void;
962
- namespace finished {
963
- function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise<void>;
964
- }
965
- type PipelineSourceFunction<T> = () => Iterable<T> | AsyncIterable<T>;
966
- type PipelineSource<T> = Iterable<T> | AsyncIterable<T> | NodeJS.ReadableStream | PipelineSourceFunction<T>;
967
- type PipelineTransform<S extends PipelineTransformSource<any>, U> =
968
- | NodeJS.ReadWriteStream
969
- | ((source: S extends (...args: any[]) => Iterable<infer ST> | AsyncIterable<infer ST> ? AsyncIterable<ST> : S) => AsyncIterable<U>);
970
- type PipelineTransformSource<T> = PipelineSource<T> | PipelineTransform<any, T>;
971
- type PipelineDestinationIterableFunction<T> = (source: AsyncIterable<T>) => AsyncIterable<any>;
972
- type PipelineDestinationPromiseFunction<T, P> = (source: AsyncIterable<T>) => Promise<P>;
973
- type PipelineDestination<S extends PipelineTransformSource<any>, P> = S extends PipelineTransformSource<infer ST>
974
- ? NodeJS.WritableStream | PipelineDestinationIterableFunction<ST> | PipelineDestinationPromiseFunction<ST, P>
975
- : never;
976
- type PipelineCallback<S extends PipelineDestination<any, any>> = S extends PipelineDestinationPromiseFunction<any, infer P>
977
- ? (err: NodeJS.ErrnoException | null, value: P) => void
978
- : (err: NodeJS.ErrnoException | null) => void;
979
- type PipelinePromise<S extends PipelineDestination<any, any>> = S extends PipelineDestinationPromiseFunction<any, infer P> ? Promise<P> : Promise<void>;
980
- interface PipelineOptions {
981
- signal: AbortSignal;
982
- }
983
- /**
984
- * A module method to pipe between streams and generators forwarding errors and
985
- * properly cleaning up and provide a callback when the pipeline is complete.
986
- *
987
- * ```js
988
- * const { pipeline } = require('stream');
989
- * const fs = require('fs');
990
- * const zlib = require('zlib');
991
- *
992
- * // Use the pipeline API to easily pipe a series of streams
993
- * // together and get notified when the pipeline is fully done.
994
- *
995
- * // A pipeline to gzip a potentially huge tar file efficiently:
996
- *
997
- * pipeline(
998
- * fs.createReadStream('archive.tar'),
999
- * zlib.createGzip(),
1000
- * fs.createWriteStream('archive.tar.gz'),
1001
- * (err) => {
1002
- * if (err) {
1003
- * console.error('Pipeline failed.', err);
1004
- * } else {
1005
- * console.log('Pipeline succeeded.');
1006
- * }
1007
- * }
1008
- * );
1009
- * ```
1010
- *
1011
- * The `pipeline` API provides a promise version, which can also
1012
- * receive an options argument as the last parameter with a`signal` `AbortSignal` property. When the signal is aborted,`destroy` will be called on the underlying pipeline, with
1013
- * an`AbortError`.
1014
- *
1015
- * ```js
1016
- * const { pipeline } = require('stream/promises');
1017
- *
1018
- * async function run() {
1019
- * await pipeline(
1020
- * fs.createReadStream('archive.tar'),
1021
- * zlib.createGzip(),
1022
- * fs.createWriteStream('archive.tar.gz')
1023
- * );
1024
- * console.log('Pipeline succeeded.');
1025
- * }
1026
- *
1027
- * run().catch(console.error);
1028
- * ```
1029
- *
1030
- * To use an `AbortSignal`, pass it inside an options object,
1031
- * as the last argument:
1032
- *
1033
- * ```js
1034
- * const { pipeline } = require('stream/promises');
1035
- *
1036
- * async function run() {
1037
- * const ac = new AbortController();
1038
- * const options = {
1039
- * signal: ac.signal,
1040
- * };
1041
- *
1042
- * setTimeout(() => ac.abort(), 1);
1043
- * await pipeline(
1044
- * fs.createReadStream('archive.tar'),
1045
- * zlib.createGzip(),
1046
- * fs.createWriteStream('archive.tar.gz'),
1047
- * options,
1048
- * );
1049
- * }
1050
- *
1051
- * run().catch(console.error); // AbortError
1052
- * ```
1053
- *
1054
- * The `pipeline` API also supports async generators:
1055
- *
1056
- * ```js
1057
- * const { pipeline } = require('stream/promises');
1058
- * const fs = require('fs');
1059
- *
1060
- * async function run() {
1061
- * await pipeline(
1062
- * fs.createReadStream('lowercase.txt'),
1063
- * async function* (source) {
1064
- * source.setEncoding('utf8'); // Work with strings rather than `Buffer`s.
1065
- * for await (const chunk of source) {
1066
- * yield chunk.toUpperCase();
1067
- * }
1068
- * },
1069
- * fs.createWriteStream('uppercase.txt')
1070
- * );
1071
- * console.log('Pipeline succeeded.');
1072
- * }
1073
- *
1074
- * run().catch(console.error);
1075
- * ```
1076
- *
1077
- * `stream.pipeline()` will call `stream.destroy(err)` on all streams except:
1078
- *
1079
- * * `Readable` streams which have emitted `'end'` or `'close'`.
1080
- * * `Writable` streams which have emitted `'finish'` or `'close'`.
1081
- *
1082
- * `stream.pipeline()` leaves dangling event listeners on the streams
1083
- * after the `callback` has been invoked. In the case of reuse of streams after
1084
- * failure, this can cause event listener leaks and swallowed errors.
1085
- * @since v10.0.0
1086
- * @param callback Called when the pipeline is fully done.
1087
- */
1088
- function pipeline<A extends PipelineSource<any>, B extends PipelineDestination<A, any>>(
1089
- source: A,
1090
- destination: B,
1091
- callback?: PipelineCallback<B>
1092
- ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1093
- function pipeline<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, B extends PipelineDestination<T1, any>>(
1094
- source: A,
1095
- transform1: T1,
1096
- destination: B,
1097
- callback?: PipelineCallback<B>
1098
- ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1099
- function pipeline<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, T2 extends PipelineTransform<T1, any>, B extends PipelineDestination<T2, any>>(
1100
- source: A,
1101
- transform1: T1,
1102
- transform2: T2,
1103
- destination: B,
1104
- callback?: PipelineCallback<B>
1105
- ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1106
- function pipeline<
1107
- A extends PipelineSource<any>,
1108
- T1 extends PipelineTransform<A, any>,
1109
- T2 extends PipelineTransform<T1, any>,
1110
- T3 extends PipelineTransform<T2, any>,
1111
- B extends PipelineDestination<T3, any>
1112
- >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, callback?: PipelineCallback<B>): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1113
- function pipeline<
1114
- A extends PipelineSource<any>,
1115
- T1 extends PipelineTransform<A, any>,
1116
- T2 extends PipelineTransform<T1, any>,
1117
- T3 extends PipelineTransform<T2, any>,
1118
- T4 extends PipelineTransform<T3, any>,
1119
- B extends PipelineDestination<T4, any>
1120
- >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, callback?: PipelineCallback<B>): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1121
- function pipeline(
1122
- streams: ReadonlyArray<NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream>,
1123
- callback?: (err: NodeJS.ErrnoException | null) => void
1124
- ): NodeJS.WritableStream;
1125
- function pipeline(
1126
- stream1: NodeJS.ReadableStream,
1127
- stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream,
1128
- ...streams: Array<NodeJS.ReadWriteStream | NodeJS.WritableStream | ((err: NodeJS.ErrnoException | null) => void)>
1129
- ): NodeJS.WritableStream;
1130
- namespace pipeline {
1131
- function __promisify__<A extends PipelineSource<any>, B extends PipelineDestination<A, any>>(source: A, destination: B, options?: PipelineOptions): PipelinePromise<B>;
1132
- function __promisify__<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, B extends PipelineDestination<T1, any>>(
1133
- source: A,
1134
- transform1: T1,
1135
- destination: B,
1136
- options?: PipelineOptions
1137
- ): PipelinePromise<B>;
1138
- function __promisify__<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, T2 extends PipelineTransform<T1, any>, B extends PipelineDestination<T2, any>>(
1139
- source: A,
1140
- transform1: T1,
1141
- transform2: T2,
1142
- destination: B,
1143
- options?: PipelineOptions
1144
- ): PipelinePromise<B>;
1145
- function __promisify__<
1146
- A extends PipelineSource<any>,
1147
- T1 extends PipelineTransform<A, any>,
1148
- T2 extends PipelineTransform<T1, any>,
1149
- T3 extends PipelineTransform<T2, any>,
1150
- B extends PipelineDestination<T3, any>
1151
- >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise<B>;
1152
- function __promisify__<
1153
- A extends PipelineSource<any>,
1154
- T1 extends PipelineTransform<A, any>,
1155
- T2 extends PipelineTransform<T1, any>,
1156
- T3 extends PipelineTransform<T2, any>,
1157
- T4 extends PipelineTransform<T3, any>,
1158
- B extends PipelineDestination<T4, any>
1159
- >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise<B>;
1160
- function __promisify__(streams: ReadonlyArray<NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream>, options?: PipelineOptions): Promise<void>;
1161
- function __promisify__(
1162
- stream1: NodeJS.ReadableStream,
1163
- stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream,
1164
- ...streams: Array<NodeJS.ReadWriteStream | NodeJS.WritableStream | PipelineOptions>
1165
- ): Promise<void>;
1166
- }
1167
- interface Pipe {
1168
- close(): void;
1169
- hasRef(): boolean;
1170
- ref(): void;
1171
- unref(): void;
1172
- }
1173
- const promises: typeof streamPromises;
1174
- const consumers: typeof streamConsumers;
1175
- }
1176
- export = internal;
1177
- }
1178
- declare module 'node:stream' {
1179
- import stream = require('stream');
1180
- export = stream;
1181
- }
1
+ /**
2
+ * A stream is an abstract interface for working with streaming data in Node.js.
3
+ * The `stream` module provides an API for implementing the stream interface.
4
+ *
5
+ * There are many stream objects provided by Node.js. For instance, a `request to an HTTP server` and `process.stdout` are both stream instances.
6
+ *
7
+ * Streams can be readable, writable, or both. All streams are instances of `EventEmitter`.
8
+ *
9
+ * To access the `stream` module:
10
+ *
11
+ * ```js
12
+ * const stream = require('stream');
13
+ * ```
14
+ *
15
+ * The `stream` module is useful for creating new types of stream instances. It is
16
+ * usually not necessary to use the `stream` module to consume streams.
17
+ * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/stream.js)
18
+ */
19
+ declare module 'stream' {
20
+ import { EventEmitter, Abortable } from 'node:events';
21
+ import * as streamPromises from 'node:stream/promises';
22
+ import * as streamConsumers from 'node:stream/consumers';
23
+ class internal extends EventEmitter {
24
+ pipe<T extends NodeJS.WritableStream>(
25
+ destination: T,
26
+ options?: {
27
+ end?: boolean | undefined;
28
+ }
29
+ ): T;
30
+ }
31
+ namespace internal {
32
+ class Stream extends internal {
33
+ constructor(opts?: ReadableOptions);
34
+ }
35
+ interface StreamOptions<T extends Stream> extends Abortable {
36
+ emitClose?: boolean | undefined;
37
+ highWaterMark?: number | undefined;
38
+ objectMode?: boolean | undefined;
39
+ construct?(this: T, callback: (error?: Error | null) => void): void;
40
+ destroy?(this: T, error: Error | null, callback: (error: Error | null) => void): void;
41
+ autoDestroy?: boolean | undefined;
42
+ }
43
+ interface ReadableOptions extends StreamOptions<Readable> {
44
+ encoding?: BufferEncoding | undefined;
45
+ read?(this: Readable, size: number): void;
46
+ }
47
+ /**
48
+ * @since v0.9.4
49
+ */
50
+ class Readable extends Stream implements NodeJS.ReadableStream {
51
+ /**
52
+ * A utility method for creating Readable Streams out of iterators.
53
+ */
54
+ static from(iterable: Iterable<any> | AsyncIterable<any>, options?: ReadableOptions): Readable;
55
+ /**
56
+ * Is `true` if it is safe to call `readable.read()`, which means
57
+ * the stream has not been destroyed or emitted `'error'` or `'end'`.
58
+ * @since v11.4.0
59
+ */
60
+ readable: boolean;
61
+ /**
62
+ * Getter for the property `encoding` of a given `Readable` stream. The `encoding`property can be set using the `readable.setEncoding()` method.
63
+ * @since v12.7.0
64
+ */
65
+ readonly readableEncoding: BufferEncoding | null;
66
+ /**
67
+ * Becomes `true` when `'end'` event is emitted.
68
+ * @since v12.9.0
69
+ */
70
+ readonly readableEnded: boolean;
71
+ /**
72
+ * This property reflects the current state of a `Readable` stream as described
73
+ * in the `Three states` section.
74
+ * @since v9.4.0
75
+ */
76
+ readonly readableFlowing: boolean | null;
77
+ /**
78
+ * Returns the value of `highWaterMark` passed when creating this `Readable`.
79
+ * @since v9.3.0
80
+ */
81
+ readonly readableHighWaterMark: number;
82
+ /**
83
+ * This property contains the number of bytes (or objects) in the queue
84
+ * ready to be read. The value provides introspection data regarding
85
+ * the status of the `highWaterMark`.
86
+ * @since v9.4.0
87
+ */
88
+ readonly readableLength: number;
89
+ /**
90
+ * Getter for the property `objectMode` of a given `Readable` stream.
91
+ * @since v12.3.0
92
+ */
93
+ readonly readableObjectMode: boolean;
94
+ /**
95
+ * Is `true` after `readable.destroy()` has been called.
96
+ * @since v8.0.0
97
+ */
98
+ destroyed: boolean;
99
+ constructor(opts?: ReadableOptions);
100
+ _construct?(callback: (error?: Error | null) => void): void;
101
+ _read(size: number): void;
102
+ /**
103
+ * The `readable.read()` method pulls some data out of the internal buffer and
104
+ * returns it. If no data available to be read, `null` is returned. By default,
105
+ * the data will be returned as a `Buffer` object unless an encoding has been
106
+ * specified using the `readable.setEncoding()` method or the stream is operating
107
+ * in object mode.
108
+ *
109
+ * The optional `size` argument specifies a specific number of bytes to read. If`size` bytes are not available to be read, `null` will be returned _unless_the stream has ended, in which
110
+ * case all of the data remaining in the internal
111
+ * buffer will be returned.
112
+ *
113
+ * If the `size` argument is not specified, all of the data contained in the
114
+ * internal buffer will be returned.
115
+ *
116
+ * The `size` argument must be less than or equal to 1 GiB.
117
+ *
118
+ * The `readable.read()` method should only be called on `Readable` streams
119
+ * operating in paused mode. In flowing mode, `readable.read()` is called
120
+ * automatically until the internal buffer is fully drained.
121
+ *
122
+ * ```js
123
+ * const readable = getReadableStreamSomehow();
124
+ *
125
+ * // 'readable' may be triggered multiple times as data is buffered in
126
+ * readable.on('readable', () => {
127
+ * let chunk;
128
+ * console.log('Stream is readable (new data received in buffer)');
129
+ * // Use a loop to make sure we read all currently available data
130
+ * while (null !== (chunk = readable.read())) {
131
+ * console.log(`Read ${chunk.length} bytes of data...`);
132
+ * }
133
+ * });
134
+ *
135
+ * // 'end' will be triggered once when there is no more data available
136
+ * readable.on('end', () => {
137
+ * console.log('Reached end of stream.');
138
+ * });
139
+ * ```
140
+ *
141
+ * Each call to `readable.read()` returns a chunk of data, or `null`. The chunks
142
+ * are not concatenated. A `while` loop is necessary to consume all data
143
+ * currently in the buffer. When reading a large file `.read()` may return `null`,
144
+ * having consumed all buffered content so far, but there is still more data to
145
+ * come not yet buffered. In this case a new `'readable'` event will be emitted
146
+ * when there is more data in the buffer. Finally the `'end'` event will be
147
+ * emitted when there is no more data to come.
148
+ *
149
+ * Therefore to read a file's whole contents from a `readable`, it is necessary
150
+ * to collect chunks across multiple `'readable'` events:
151
+ *
152
+ * ```js
153
+ * const chunks = [];
154
+ *
155
+ * readable.on('readable', () => {
156
+ * let chunk;
157
+ * while (null !== (chunk = readable.read())) {
158
+ * chunks.push(chunk);
159
+ * }
160
+ * });
161
+ *
162
+ * readable.on('end', () => {
163
+ * const content = chunks.join('');
164
+ * });
165
+ * ```
166
+ *
167
+ * A `Readable` stream in object mode will always return a single item from
168
+ * a call to `readable.read(size)`, regardless of the value of the`size` argument.
169
+ *
170
+ * If the `readable.read()` method returns a chunk of data, a `'data'` event will
171
+ * also be emitted.
172
+ *
173
+ * Calling {@link read} after the `'end'` event has
174
+ * been emitted will return `null`. No runtime error will be raised.
175
+ * @since v0.9.4
176
+ * @param size Optional argument to specify how much data to read.
177
+ */
178
+ read(size?: number): any;
179
+ /**
180
+ * The `readable.setEncoding()` method sets the character encoding for
181
+ * data read from the `Readable` stream.
182
+ *
183
+ * By default, no encoding is assigned and stream data will be returned as`Buffer` objects. Setting an encoding causes the stream data
184
+ * to be returned as strings of the specified encoding rather than as `Buffer`objects. For instance, calling `readable.setEncoding('utf8')` will cause the
185
+ * output data to be interpreted as UTF-8 data, and passed as strings. Calling`readable.setEncoding('hex')` will cause the data to be encoded in hexadecimal
186
+ * string format.
187
+ *
188
+ * The `Readable` stream will properly handle multi-byte characters delivered
189
+ * through the stream that would otherwise become improperly decoded if simply
190
+ * pulled from the stream as `Buffer` objects.
191
+ *
192
+ * ```js
193
+ * const readable = getReadableStreamSomehow();
194
+ * readable.setEncoding('utf8');
195
+ * readable.on('data', (chunk) => {
196
+ * assert.equal(typeof chunk, 'string');
197
+ * console.log('Got %d characters of string data:', chunk.length);
198
+ * });
199
+ * ```
200
+ * @since v0.9.4
201
+ * @param encoding The encoding to use.
202
+ */
203
+ setEncoding(encoding: BufferEncoding): this;
204
+ /**
205
+ * The `readable.pause()` method will cause a stream in flowing mode to stop
206
+ * emitting `'data'` events, switching out of flowing mode. Any data that
207
+ * becomes available will remain in the internal buffer.
208
+ *
209
+ * ```js
210
+ * const readable = getReadableStreamSomehow();
211
+ * readable.on('data', (chunk) => {
212
+ * console.log(`Received ${chunk.length} bytes of data.`);
213
+ * readable.pause();
214
+ * console.log('There will be no additional data for 1 second.');
215
+ * setTimeout(() => {
216
+ * console.log('Now data will start flowing again.');
217
+ * readable.resume();
218
+ * }, 1000);
219
+ * });
220
+ * ```
221
+ *
222
+ * The `readable.pause()` method has no effect if there is a `'readable'`event listener.
223
+ * @since v0.9.4
224
+ */
225
+ pause(): this;
226
+ /**
227
+ * The `readable.resume()` method causes an explicitly paused `Readable` stream to
228
+ * resume emitting `'data'` events, switching the stream into flowing mode.
229
+ *
230
+ * The `readable.resume()` method can be used to fully consume the data from a
231
+ * stream without actually processing any of that data:
232
+ *
233
+ * ```js
234
+ * getReadableStreamSomehow()
235
+ * .resume()
236
+ * .on('end', () => {
237
+ * console.log('Reached the end, but did not read anything.');
238
+ * });
239
+ * ```
240
+ *
241
+ * The `readable.resume()` method has no effect if there is a `'readable'`event listener.
242
+ * @since v0.9.4
243
+ */
244
+ resume(): this;
245
+ /**
246
+ * The `readable.isPaused()` method returns the current operating state of the`Readable`. This is used primarily by the mechanism that underlies the`readable.pipe()` method. In most
247
+ * typical cases, there will be no reason to
248
+ * use this method directly.
249
+ *
250
+ * ```js
251
+ * const readable = new stream.Readable();
252
+ *
253
+ * readable.isPaused(); // === false
254
+ * readable.pause();
255
+ * readable.isPaused(); // === true
256
+ * readable.resume();
257
+ * readable.isPaused(); // === false
258
+ * ```
259
+ * @since v0.11.14
260
+ */
261
+ isPaused(): boolean;
262
+ /**
263
+ * The `readable.unpipe()` method detaches a `Writable` stream previously attached
264
+ * using the {@link pipe} method.
265
+ *
266
+ * If the `destination` is not specified, then _all_ pipes are detached.
267
+ *
268
+ * If the `destination` is specified, but no pipe is set up for it, then
269
+ * the method does nothing.
270
+ *
271
+ * ```js
272
+ * const fs = require('fs');
273
+ * const readable = getReadableStreamSomehow();
274
+ * const writable = fs.createWriteStream('file.txt');
275
+ * // All the data from readable goes into 'file.txt',
276
+ * // but only for the first second.
277
+ * readable.pipe(writable);
278
+ * setTimeout(() => {
279
+ * console.log('Stop writing to file.txt.');
280
+ * readable.unpipe(writable);
281
+ * console.log('Manually close the file stream.');
282
+ * writable.end();
283
+ * }, 1000);
284
+ * ```
285
+ * @since v0.9.4
286
+ * @param destination Optional specific stream to unpipe
287
+ */
288
+ unpipe(destination?: NodeJS.WritableStream): this;
289
+ /**
290
+ * Passing `chunk` as `null` signals the end of the stream (EOF) and behaves the
291
+ * same as `readable.push(null)`, after which no more data can be written. The EOF
292
+ * signal is put at the end of the buffer and any buffered data will still be
293
+ * flushed.
294
+ *
295
+ * The `readable.unshift()` method pushes a chunk of data back into the internal
296
+ * buffer. This is useful in certain situations where a stream is being consumed by
297
+ * code that needs to "un-consume" some amount of data that it has optimistically
298
+ * pulled out of the source, so that the data can be passed on to some other party.
299
+ *
300
+ * The `stream.unshift(chunk)` method cannot be called after the `'end'` event
301
+ * has been emitted or a runtime error will be thrown.
302
+ *
303
+ * Developers using `stream.unshift()` often should consider switching to
304
+ * use of a `Transform` stream instead. See the `API for stream implementers` section for more information.
305
+ *
306
+ * ```js
307
+ * // Pull off a header delimited by \n\n.
308
+ * // Use unshift() if we get too much.
309
+ * // Call the callback with (error, header, stream).
310
+ * const { StringDecoder } = require('string_decoder');
311
+ * function parseHeader(stream, callback) {
312
+ * stream.on('error', callback);
313
+ * stream.on('readable', onReadable);
314
+ * const decoder = new StringDecoder('utf8');
315
+ * let header = '';
316
+ * function onReadable() {
317
+ * let chunk;
318
+ * while (null !== (chunk = stream.read())) {
319
+ * const str = decoder.write(chunk);
320
+ * if (str.match(/\n\n/)) {
321
+ * // Found the header boundary.
322
+ * const split = str.split(/\n\n/);
323
+ * header += split.shift();
324
+ * const remaining = split.join('\n\n');
325
+ * const buf = Buffer.from(remaining, 'utf8');
326
+ * stream.removeListener('error', callback);
327
+ * // Remove the 'readable' listener before unshifting.
328
+ * stream.removeListener('readable', onReadable);
329
+ * if (buf.length)
330
+ * stream.unshift(buf);
331
+ * // Now the body of the message can be read from the stream.
332
+ * callback(null, header, stream);
333
+ * } else {
334
+ * // Still reading the header.
335
+ * header += str;
336
+ * }
337
+ * }
338
+ * }
339
+ * }
340
+ * ```
341
+ *
342
+ * Unlike {@link push}, `stream.unshift(chunk)` will not
343
+ * end the reading process by resetting the internal reading state of the stream.
344
+ * This can cause unexpected results if `readable.unshift()` is called during a
345
+ * read (i.e. from within a {@link _read} implementation on a
346
+ * custom stream). Following the call to `readable.unshift()` with an immediate {@link push} will reset the reading state appropriately,
347
+ * however it is best to simply avoid calling `readable.unshift()` while in the
348
+ * process of performing a read.
349
+ * @since v0.9.11
350
+ * @param chunk Chunk of data to unshift onto the read queue. For streams not operating in object mode, `chunk` must be a string, `Buffer`, `Uint8Array` or `null`. For object mode
351
+ * streams, `chunk` may be any JavaScript value.
352
+ * @param encoding Encoding of string chunks. Must be a valid `Buffer` encoding, such as `'utf8'` or `'ascii'`.
353
+ */
354
+ unshift(chunk: any, encoding?: BufferEncoding): void;
355
+ /**
356
+ * Prior to Node.js 0.10, streams did not implement the entire `stream` module API
357
+ * as it is currently defined. (See `Compatibility` for more information.)
358
+ *
359
+ * When using an older Node.js library that emits `'data'` events and has a {@link pause} method that is advisory only, the`readable.wrap()` method can be used to create a `Readable`
360
+ * stream that uses
361
+ * the old stream as its data source.
362
+ *
363
+ * It will rarely be necessary to use `readable.wrap()` but the method has been
364
+ * provided as a convenience for interacting with older Node.js applications and
365
+ * libraries.
366
+ *
367
+ * ```js
368
+ * const { OldReader } = require('./old-api-module.js');
369
+ * const { Readable } = require('stream');
370
+ * const oreader = new OldReader();
371
+ * const myReader = new Readable().wrap(oreader);
372
+ *
373
+ * myReader.on('readable', () => {
374
+ * myReader.read(); // etc.
375
+ * });
376
+ * ```
377
+ * @since v0.9.4
378
+ * @param stream An "old style" readable stream
379
+ */
380
+ wrap(stream: NodeJS.ReadableStream): this;
381
+ push(chunk: any, encoding?: BufferEncoding): boolean;
382
+ _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
383
+ /**
384
+ * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the readable
385
+ * stream will release any internal resources and subsequent calls to `push()`will be ignored.
386
+ *
387
+ * Once `destroy()` has been called any further calls will be a no-op and no
388
+ * further errors except from `_destroy()` may be emitted as `'error'`.
389
+ *
390
+ * Implementors should not override this method, but instead implement `readable._destroy()`.
391
+ * @since v8.0.0
392
+ * @param error Error which will be passed as payload in `'error'` event
393
+ */
394
+ destroy(error?: Error): void;
395
+ /**
396
+ * Event emitter
397
+ * The defined events on documents including:
398
+ * 1. close
399
+ * 2. data
400
+ * 3. end
401
+ * 4. error
402
+ * 5. pause
403
+ * 6. readable
404
+ * 7. resume
405
+ */
406
+ addListener(event: 'close', listener: () => void): this;
407
+ addListener(event: 'data', listener: (chunk: any) => void): this;
408
+ addListener(event: 'end', listener: () => void): this;
409
+ addListener(event: 'error', listener: (err: Error) => void): this;
410
+ addListener(event: 'pause', listener: () => void): this;
411
+ addListener(event: 'readable', listener: () => void): this;
412
+ addListener(event: 'resume', listener: () => void): this;
413
+ addListener(event: string | symbol, listener: (...args: any[]) => void): this;
414
+ emit(event: 'close'): boolean;
415
+ emit(event: 'data', chunk: any): boolean;
416
+ emit(event: 'end'): boolean;
417
+ emit(event: 'error', err: Error): boolean;
418
+ emit(event: 'pause'): boolean;
419
+ emit(event: 'readable'): boolean;
420
+ emit(event: 'resume'): boolean;
421
+ emit(event: string | symbol, ...args: any[]): boolean;
422
+ on(event: 'close', listener: () => void): this;
423
+ on(event: 'data', listener: (chunk: any) => void): this;
424
+ on(event: 'end', listener: () => void): this;
425
+ on(event: 'error', listener: (err: Error) => void): this;
426
+ on(event: 'pause', listener: () => void): this;
427
+ on(event: 'readable', listener: () => void): this;
428
+ on(event: 'resume', listener: () => void): this;
429
+ on(event: string | symbol, listener: (...args: any[]) => void): this;
430
+ once(event: 'close', listener: () => void): this;
431
+ once(event: 'data', listener: (chunk: any) => void): this;
432
+ once(event: 'end', listener: () => void): this;
433
+ once(event: 'error', listener: (err: Error) => void): this;
434
+ once(event: 'pause', listener: () => void): this;
435
+ once(event: 'readable', listener: () => void): this;
436
+ once(event: 'resume', listener: () => void): this;
437
+ once(event: string | symbol, listener: (...args: any[]) => void): this;
438
+ prependListener(event: 'close', listener: () => void): this;
439
+ prependListener(event: 'data', listener: (chunk: any) => void): this;
440
+ prependListener(event: 'end', listener: () => void): this;
441
+ prependListener(event: 'error', listener: (err: Error) => void): this;
442
+ prependListener(event: 'pause', listener: () => void): this;
443
+ prependListener(event: 'readable', listener: () => void): this;
444
+ prependListener(event: 'resume', listener: () => void): this;
445
+ prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
446
+ prependOnceListener(event: 'close', listener: () => void): this;
447
+ prependOnceListener(event: 'data', listener: (chunk: any) => void): this;
448
+ prependOnceListener(event: 'end', listener: () => void): this;
449
+ prependOnceListener(event: 'error', listener: (err: Error) => void): this;
450
+ prependOnceListener(event: 'pause', listener: () => void): this;
451
+ prependOnceListener(event: 'readable', listener: () => void): this;
452
+ prependOnceListener(event: 'resume', listener: () => void): this;
453
+ prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
454
+ removeListener(event: 'close', listener: () => void): this;
455
+ removeListener(event: 'data', listener: (chunk: any) => void): this;
456
+ removeListener(event: 'end', listener: () => void): this;
457
+ removeListener(event: 'error', listener: (err: Error) => void): this;
458
+ removeListener(event: 'pause', listener: () => void): this;
459
+ removeListener(event: 'readable', listener: () => void): this;
460
+ removeListener(event: 'resume', listener: () => void): this;
461
+ removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
462
+ [Symbol.asyncIterator](): AsyncIterableIterator<any>;
463
+ }
464
+ interface WritableOptions extends StreamOptions<Writable> {
465
+ decodeStrings?: boolean | undefined;
466
+ defaultEncoding?: BufferEncoding | undefined;
467
+ write?(this: Writable, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
468
+ writev?(
469
+ this: Writable,
470
+ chunks: Array<{
471
+ chunk: any;
472
+ encoding: BufferEncoding;
473
+ }>,
474
+ callback: (error?: Error | null) => void
475
+ ): void;
476
+ final?(this: Writable, callback: (error?: Error | null) => void): void;
477
+ }
478
+ /**
479
+ * @since v0.9.4
480
+ */
481
+ class Writable extends Stream implements NodeJS.WritableStream {
482
+ /**
483
+ * Is `true` if it is safe to call `writable.write()`, which means
484
+ * the stream has not been destroyed, errored or ended.
485
+ * @since v11.4.0
486
+ */
487
+ readonly writable: boolean;
488
+ /**
489
+ * Is `true` after `writable.end()` has been called. This property
490
+ * does not indicate whether the data has been flushed, for this use `writable.writableFinished` instead.
491
+ * @since v12.9.0
492
+ */
493
+ readonly writableEnded: boolean;
494
+ /**
495
+ * Is set to `true` immediately before the `'finish'` event is emitted.
496
+ * @since v12.6.0
497
+ */
498
+ readonly writableFinished: boolean;
499
+ /**
500
+ * Return the value of `highWaterMark` passed when creating this `Writable`.
501
+ * @since v9.3.0
502
+ */
503
+ readonly writableHighWaterMark: number;
504
+ /**
505
+ * This property contains the number of bytes (or objects) in the queue
506
+ * ready to be written. The value provides introspection data regarding
507
+ * the status of the `highWaterMark`.
508
+ * @since v9.4.0
509
+ */
510
+ readonly writableLength: number;
511
+ /**
512
+ * Getter for the property `objectMode` of a given `Writable` stream.
513
+ * @since v12.3.0
514
+ */
515
+ readonly writableObjectMode: boolean;
516
+ /**
517
+ * Number of times `writable.uncork()` needs to be
518
+ * called in order to fully uncork the stream.
519
+ * @since v13.2.0, v12.16.0
520
+ */
521
+ readonly writableCorked: number;
522
+ /**
523
+ * Is `true` after `writable.destroy()` has been called.
524
+ * @since v8.0.0
525
+ */
526
+ destroyed: boolean;
527
+ constructor(opts?: WritableOptions);
528
+ _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
529
+ _writev?(
530
+ chunks: Array<{
531
+ chunk: any;
532
+ encoding: BufferEncoding;
533
+ }>,
534
+ callback: (error?: Error | null) => void
535
+ ): void;
536
+ _construct?(callback: (error?: Error | null) => void): void;
537
+ _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
538
+ _final(callback: (error?: Error | null) => void): void;
539
+ /**
540
+ * The `writable.write()` method writes some data to the stream, and calls the
541
+ * supplied `callback` once the data has been fully handled. If an error
542
+ * occurs, the `callback` will be called with the error as its
543
+ * first argument. The `callback` is called asynchronously and before `'error'` is
544
+ * emitted.
545
+ *
546
+ * The return value is `true` if the internal buffer is less than the`highWaterMark` configured when the stream was created after admitting `chunk`.
547
+ * If `false` is returned, further attempts to write data to the stream should
548
+ * stop until the `'drain'` event is emitted.
549
+ *
550
+ * While a stream is not draining, calls to `write()` will buffer `chunk`, and
551
+ * return false. Once all currently buffered chunks are drained (accepted for
552
+ * delivery by the operating system), the `'drain'` event will be emitted.
553
+ * It is recommended that once `write()` returns false, no more chunks be written
554
+ * until the `'drain'` event is emitted. While calling `write()` on a stream that
555
+ * is not draining is allowed, Node.js will buffer all written chunks until
556
+ * maximum memory usage occurs, at which point it will abort unconditionally.
557
+ * Even before it aborts, high memory usage will cause poor garbage collector
558
+ * performance and high RSS (which is not typically released back to the system,
559
+ * even after the memory is no longer required). Since TCP sockets may never
560
+ * drain if the remote peer does not read the data, writing a socket that is
561
+ * not draining may lead to a remotely exploitable vulnerability.
562
+ *
563
+ * Writing data while the stream is not draining is particularly
564
+ * problematic for a `Transform`, because the `Transform` streams are paused
565
+ * by default until they are piped or a `'data'` or `'readable'` event handler
566
+ * is added.
567
+ *
568
+ * If the data to be written can be generated or fetched on demand, it is
569
+ * recommended to encapsulate the logic into a `Readable` and use {@link pipe}. However, if calling `write()` is preferred, it is
570
+ * possible to respect backpressure and avoid memory issues using the `'drain'` event:
571
+ *
572
+ * ```js
573
+ * function write(data, cb) {
574
+ * if (!stream.write(data)) {
575
+ * stream.once('drain', cb);
576
+ * } else {
577
+ * process.nextTick(cb);
578
+ * }
579
+ * }
580
+ *
581
+ * // Wait for cb to be called before doing any other write.
582
+ * write('hello', () => {
583
+ * console.log('Write completed, do more writes now.');
584
+ * });
585
+ * ```
586
+ *
587
+ * A `Writable` stream in object mode will always ignore the `encoding` argument.
588
+ * @since v0.9.4
589
+ * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any
590
+ * JavaScript value other than `null`.
591
+ * @param [encoding='utf8'] The encoding, if `chunk` is a string.
592
+ * @param callback Callback for when this chunk of data is flushed.
593
+ * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.
594
+ */
595
+ write(chunk: any, callback?: (error: Error | null | undefined) => void): boolean;
596
+ write(chunk: any, encoding: BufferEncoding, callback?: (error: Error | null | undefined) => void): boolean;
597
+ /**
598
+ * The `writable.setDefaultEncoding()` method sets the default `encoding` for a `Writable` stream.
599
+ * @since v0.11.15
600
+ * @param encoding The new default encoding
601
+ */
602
+ setDefaultEncoding(encoding: BufferEncoding): this;
603
+ /**
604
+ * Calling the `writable.end()` method signals that no more data will be written
605
+ * to the `Writable`. The optional `chunk` and `encoding` arguments allow one
606
+ * final additional chunk of data to be written immediately before closing the
607
+ * stream.
608
+ *
609
+ * Calling the {@link write} method after calling {@link end} will raise an error.
610
+ *
611
+ * ```js
612
+ * // Write 'hello, ' and then end with 'world!'.
613
+ * const fs = require('fs');
614
+ * const file = fs.createWriteStream('example.txt');
615
+ * file.write('hello, ');
616
+ * file.end('world!');
617
+ * // Writing more now is not allowed!
618
+ * ```
619
+ * @since v0.9.4
620
+ * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any
621
+ * JavaScript value other than `null`.
622
+ * @param encoding The encoding if `chunk` is a string
623
+ * @param callback Callback for when the stream is finished.
624
+ */
625
+ end(cb?: () => void): void;
626
+ end(chunk: any, cb?: () => void): void;
627
+ end(chunk: any, encoding: BufferEncoding, cb?: () => void): void;
628
+ /**
629
+ * The `writable.cork()` method forces all written data to be buffered in memory.
630
+ * The buffered data will be flushed when either the {@link uncork} or {@link end} methods are called.
631
+ *
632
+ * The primary intent of `writable.cork()` is to accommodate a situation in which
633
+ * several small chunks are written to the stream in rapid succession. Instead of
634
+ * immediately forwarding them to the underlying destination, `writable.cork()`buffers all the chunks until `writable.uncork()` is called, which will pass them
635
+ * all to `writable._writev()`, if present. This prevents a head-of-line blocking
636
+ * situation where data is being buffered while waiting for the first small chunk
637
+ * to be processed. However, use of `writable.cork()` without implementing`writable._writev()` may have an adverse effect on throughput.
638
+ *
639
+ * See also: `writable.uncork()`, `writable._writev()`.
640
+ * @since v0.11.2
641
+ */
642
+ cork(): void;
643
+ /**
644
+ * The `writable.uncork()` method flushes all data buffered since {@link cork} was called.
645
+ *
646
+ * When using `writable.cork()` and `writable.uncork()` to manage the buffering
647
+ * of writes to a stream, it is recommended that calls to `writable.uncork()` be
648
+ * deferred using `process.nextTick()`. Doing so allows batching of all`writable.write()` calls that occur within a given Node.js event loop phase.
649
+ *
650
+ * ```js
651
+ * stream.cork();
652
+ * stream.write('some ');
653
+ * stream.write('data ');
654
+ * process.nextTick(() => stream.uncork());
655
+ * ```
656
+ *
657
+ * If the `writable.cork()` method is called multiple times on a stream, the
658
+ * same number of calls to `writable.uncork()` must be called to flush the buffered
659
+ * data.
660
+ *
661
+ * ```js
662
+ * stream.cork();
663
+ * stream.write('some ');
664
+ * stream.cork();
665
+ * stream.write('data ');
666
+ * process.nextTick(() => {
667
+ * stream.uncork();
668
+ * // The data will not be flushed until uncork() is called a second time.
669
+ * stream.uncork();
670
+ * });
671
+ * ```
672
+ *
673
+ * See also: `writable.cork()`.
674
+ * @since v0.11.2
675
+ */
676
+ uncork(): void;
677
+ /**
678
+ * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the writable
679
+ * stream has ended and subsequent calls to `write()` or `end()` will result in
680
+ * an `ERR_STREAM_DESTROYED` error.
681
+ * This is a destructive and immediate way to destroy a stream. Previous calls to`write()` may not have drained, and may trigger an `ERR_STREAM_DESTROYED` error.
682
+ * Use `end()` instead of destroy if data should flush before close, or wait for
683
+ * the `'drain'` event before destroying the stream.
684
+ *
685
+ * Once `destroy()` has been called any further calls will be a no-op and no
686
+ * further errors except from `_destroy()` may be emitted as `'error'`.
687
+ *
688
+ * Implementors should not override this method,
689
+ * but instead implement `writable._destroy()`.
690
+ * @since v8.0.0
691
+ * @param error Optional, an error to emit with `'error'` event.
692
+ */
693
+ destroy(error?: Error): void;
694
+ /**
695
+ * Event emitter
696
+ * The defined events on documents including:
697
+ * 1. close
698
+ * 2. drain
699
+ * 3. error
700
+ * 4. finish
701
+ * 5. pipe
702
+ * 6. unpipe
703
+ */
704
+ addListener(event: 'close', listener: () => void): this;
705
+ addListener(event: 'drain', listener: () => void): this;
706
+ addListener(event: 'error', listener: (err: Error) => void): this;
707
+ addListener(event: 'finish', listener: () => void): this;
708
+ addListener(event: 'pipe', listener: (src: Readable) => void): this;
709
+ addListener(event: 'unpipe', listener: (src: Readable) => void): this;
710
+ addListener(event: string | symbol, listener: (...args: any[]) => void): this;
711
+ emit(event: 'close'): boolean;
712
+ emit(event: 'drain'): boolean;
713
+ emit(event: 'error', err: Error): boolean;
714
+ emit(event: 'finish'): boolean;
715
+ emit(event: 'pipe', src: Readable): boolean;
716
+ emit(event: 'unpipe', src: Readable): boolean;
717
+ emit(event: string | symbol, ...args: any[]): boolean;
718
+ on(event: 'close', listener: () => void): this;
719
+ on(event: 'drain', listener: () => void): this;
720
+ on(event: 'error', listener: (err: Error) => void): this;
721
+ on(event: 'finish', listener: () => void): this;
722
+ on(event: 'pipe', listener: (src: Readable) => void): this;
723
+ on(event: 'unpipe', listener: (src: Readable) => void): this;
724
+ on(event: string | symbol, listener: (...args: any[]) => void): this;
725
+ once(event: 'close', listener: () => void): this;
726
+ once(event: 'drain', listener: () => void): this;
727
+ once(event: 'error', listener: (err: Error) => void): this;
728
+ once(event: 'finish', listener: () => void): this;
729
+ once(event: 'pipe', listener: (src: Readable) => void): this;
730
+ once(event: 'unpipe', listener: (src: Readable) => void): this;
731
+ once(event: string | symbol, listener: (...args: any[]) => void): this;
732
+ prependListener(event: 'close', listener: () => void): this;
733
+ prependListener(event: 'drain', listener: () => void): this;
734
+ prependListener(event: 'error', listener: (err: Error) => void): this;
735
+ prependListener(event: 'finish', listener: () => void): this;
736
+ prependListener(event: 'pipe', listener: (src: Readable) => void): this;
737
+ prependListener(event: 'unpipe', listener: (src: Readable) => void): this;
738
+ prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
739
+ prependOnceListener(event: 'close', listener: () => void): this;
740
+ prependOnceListener(event: 'drain', listener: () => void): this;
741
+ prependOnceListener(event: 'error', listener: (err: Error) => void): this;
742
+ prependOnceListener(event: 'finish', listener: () => void): this;
743
+ prependOnceListener(event: 'pipe', listener: (src: Readable) => void): this;
744
+ prependOnceListener(event: 'unpipe', listener: (src: Readable) => void): this;
745
+ prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
746
+ removeListener(event: 'close', listener: () => void): this;
747
+ removeListener(event: 'drain', listener: () => void): this;
748
+ removeListener(event: 'error', listener: (err: Error) => void): this;
749
+ removeListener(event: 'finish', listener: () => void): this;
750
+ removeListener(event: 'pipe', listener: (src: Readable) => void): this;
751
+ removeListener(event: 'unpipe', listener: (src: Readable) => void): this;
752
+ removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
753
+ }
754
+ interface DuplexOptions extends ReadableOptions, WritableOptions {
755
+ allowHalfOpen?: boolean | undefined;
756
+ readableObjectMode?: boolean | undefined;
757
+ writableObjectMode?: boolean | undefined;
758
+ readableHighWaterMark?: number | undefined;
759
+ writableHighWaterMark?: number | undefined;
760
+ writableCorked?: number | undefined;
761
+ construct?(this: Duplex, callback: (error?: Error | null) => void): void;
762
+ read?(this: Duplex, size: number): void;
763
+ write?(this: Duplex, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
764
+ writev?(
765
+ this: Duplex,
766
+ chunks: Array<{
767
+ chunk: any;
768
+ encoding: BufferEncoding;
769
+ }>,
770
+ callback: (error?: Error | null) => void
771
+ ): void;
772
+ final?(this: Duplex, callback: (error?: Error | null) => void): void;
773
+ destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void;
774
+ }
775
+ /**
776
+ * Duplex streams are streams that implement both the `Readable` and `Writable` interfaces.
777
+ *
778
+ * Examples of `Duplex` streams include:
779
+ *
780
+ * * `TCP sockets`
781
+ * * `zlib streams`
782
+ * * `crypto streams`
783
+ * @since v0.9.4
784
+ */
785
+ class Duplex extends Readable implements Writable {
786
+ readonly writable: boolean;
787
+ readonly writableEnded: boolean;
788
+ readonly writableFinished: boolean;
789
+ readonly writableHighWaterMark: number;
790
+ readonly writableLength: number;
791
+ readonly writableObjectMode: boolean;
792
+ readonly writableCorked: number;
793
+ allowHalfOpen: boolean;
794
+ constructor(opts?: DuplexOptions);
795
+ _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
796
+ _writev?(
797
+ chunks: Array<{
798
+ chunk: any;
799
+ encoding: BufferEncoding;
800
+ }>,
801
+ callback: (error?: Error | null) => void
802
+ ): void;
803
+ _destroy(error: Error | null, callback: (error: Error | null) => void): void;
804
+ _final(callback: (error?: Error | null) => void): void;
805
+ write(chunk: any, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean;
806
+ write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean;
807
+ setDefaultEncoding(encoding: BufferEncoding): this;
808
+ end(cb?: () => void): void;
809
+ end(chunk: any, cb?: () => void): void;
810
+ end(chunk: any, encoding?: BufferEncoding, cb?: () => void): void;
811
+ cork(): void;
812
+ uncork(): void;
813
+ }
814
+ type TransformCallback = (error?: Error | null, data?: any) => void;
815
+ interface TransformOptions extends DuplexOptions {
816
+ construct?(this: Transform, callback: (error?: Error | null) => void): void;
817
+ read?(this: Transform, size: number): void;
818
+ write?(this: Transform, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
819
+ writev?(
820
+ this: Transform,
821
+ chunks: Array<{
822
+ chunk: any;
823
+ encoding: BufferEncoding;
824
+ }>,
825
+ callback: (error?: Error | null) => void
826
+ ): void;
827
+ final?(this: Transform, callback: (error?: Error | null) => void): void;
828
+ destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void;
829
+ transform?(this: Transform, chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;
830
+ flush?(this: Transform, callback: TransformCallback): void;
831
+ }
832
+ /**
833
+ * Transform streams are `Duplex` streams where the output is in some way
834
+ * related to the input. Like all `Duplex` streams, `Transform` streams
835
+ * implement both the `Readable` and `Writable` interfaces.
836
+ *
837
+ * Examples of `Transform` streams include:
838
+ *
839
+ * * `zlib streams`
840
+ * * `crypto streams`
841
+ * @since v0.9.4
842
+ */
843
+ class Transform extends Duplex {
844
+ constructor(opts?: TransformOptions);
845
+ _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;
846
+ _flush(callback: TransformCallback): void;
847
+ }
848
+ /**
849
+ * The `stream.PassThrough` class is a trivial implementation of a `Transform` stream that simply passes the input bytes across to the output. Its purpose is
850
+ * primarily for examples and testing, but there are some use cases where`stream.PassThrough` is useful as a building block for novel sorts of streams.
851
+ */
852
+ class PassThrough extends Transform {}
853
+ /**
854
+ * Attaches an AbortSignal to a readable or writeable stream. This lets code
855
+ * control stream destruction using an `AbortController`.
856
+ *
857
+ * Calling `abort` on the `AbortController` corresponding to the passed`AbortSignal` will behave the same way as calling `.destroy(new AbortError())`on the stream.
858
+ *
859
+ * ```js
860
+ * const fs = require('fs');
861
+ *
862
+ * const controller = new AbortController();
863
+ * const read = addAbortSignal(
864
+ * controller.signal,
865
+ * fs.createReadStream(('object.json'))
866
+ * );
867
+ * // Later, abort the operation closing the stream
868
+ * controller.abort();
869
+ * ```
870
+ *
871
+ * Or using an `AbortSignal` with a readable stream as an async iterable:
872
+ *
873
+ * ```js
874
+ * const controller = new AbortController();
875
+ * setTimeout(() => controller.abort(), 10_000); // set a timeout
876
+ * const stream = addAbortSignal(
877
+ * controller.signal,
878
+ * fs.createReadStream(('object.json'))
879
+ * );
880
+ * (async () => {
881
+ * try {
882
+ * for await (const chunk of stream) {
883
+ * await process(chunk);
884
+ * }
885
+ * } catch (e) {
886
+ * if (e.name === 'AbortError') {
887
+ * // The operation was cancelled
888
+ * } else {
889
+ * throw e;
890
+ * }
891
+ * }
892
+ * })();
893
+ * ```
894
+ * @since v15.4.0
895
+ * @param signal A signal representing possible cancellation
896
+ * @param stream a stream to attach a signal to
897
+ */
898
+ function addAbortSignal<T extends Stream>(signal: AbortSignal, stream: T): T;
899
+ interface FinishedOptions extends Abortable {
900
+ error?: boolean | undefined;
901
+ readable?: boolean | undefined;
902
+ writable?: boolean | undefined;
903
+ }
904
+ /**
905
+ * A function to get notified when a stream is no longer readable, writable
906
+ * or has experienced an error or a premature close event.
907
+ *
908
+ * ```js
909
+ * const { finished } = require('stream');
910
+ *
911
+ * const rs = fs.createReadStream('archive.tar');
912
+ *
913
+ * finished(rs, (err) => {
914
+ * if (err) {
915
+ * console.error('Stream failed.', err);
916
+ * } else {
917
+ * console.log('Stream is done reading.');
918
+ * }
919
+ * });
920
+ *
921
+ * rs.resume(); // Drain the stream.
922
+ * ```
923
+ *
924
+ * Especially useful in error handling scenarios where a stream is destroyed
925
+ * prematurely (like an aborted HTTP request), and will not emit `'end'`or `'finish'`.
926
+ *
927
+ * The `finished` API provides promise version:
928
+ *
929
+ * ```js
930
+ * const { finished } = require('stream/promises');
931
+ *
932
+ * const rs = fs.createReadStream('archive.tar');
933
+ *
934
+ * async function run() {
935
+ * await finished(rs);
936
+ * console.log('Stream is done reading.');
937
+ * }
938
+ *
939
+ * run().catch(console.error);
940
+ * rs.resume(); // Drain the stream.
941
+ * ```
942
+ *
943
+ * `stream.finished()` leaves dangling event listeners (in particular`'error'`, `'end'`, `'finish'` and `'close'`) after `callback` has been
944
+ * invoked. The reason for this is so that unexpected `'error'` events (due to
945
+ * incorrect stream implementations) do not cause unexpected crashes.
946
+ * If this is unwanted behavior then the returned cleanup function needs to be
947
+ * invoked in the callback:
948
+ *
949
+ * ```js
950
+ * const cleanup = finished(rs, (err) => {
951
+ * cleanup();
952
+ * // ...
953
+ * });
954
+ * ```
955
+ * @since v10.0.0
956
+ * @param stream A readable and/or writable stream.
957
+ * @param callback A callback function that takes an optional error argument.
958
+ * @return A cleanup function which removes all registered listeners.
959
+ */
960
+ function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options: FinishedOptions, callback: (err?: NodeJS.ErrnoException | null) => void): () => void;
961
+ function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException | null) => void): () => void;
962
+ namespace finished {
963
+ function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise<void>;
964
+ }
965
+ type PipelineSourceFunction<T> = () => Iterable<T> | AsyncIterable<T>;
966
+ type PipelineSource<T> = Iterable<T> | AsyncIterable<T> | NodeJS.ReadableStream | PipelineSourceFunction<T>;
967
+ type PipelineTransform<S extends PipelineTransformSource<any>, U> =
968
+ | NodeJS.ReadWriteStream
969
+ | ((source: S extends (...args: any[]) => Iterable<infer ST> | AsyncIterable<infer ST> ? AsyncIterable<ST> : S) => AsyncIterable<U>);
970
+ type PipelineTransformSource<T> = PipelineSource<T> | PipelineTransform<any, T>;
971
+ type PipelineDestinationIterableFunction<T> = (source: AsyncIterable<T>) => AsyncIterable<any>;
972
+ type PipelineDestinationPromiseFunction<T, P> = (source: AsyncIterable<T>) => Promise<P>;
973
+ type PipelineDestination<S extends PipelineTransformSource<any>, P> = S extends PipelineTransformSource<infer ST>
974
+ ? NodeJS.WritableStream | PipelineDestinationIterableFunction<ST> | PipelineDestinationPromiseFunction<ST, P>
975
+ : never;
976
+ type PipelineCallback<S extends PipelineDestination<any, any>> = S extends PipelineDestinationPromiseFunction<any, infer P>
977
+ ? (err: NodeJS.ErrnoException | null, value: P) => void
978
+ : (err: NodeJS.ErrnoException | null) => void;
979
+ type PipelinePromise<S extends PipelineDestination<any, any>> = S extends PipelineDestinationPromiseFunction<any, infer P> ? Promise<P> : Promise<void>;
980
+ interface PipelineOptions {
981
+ signal: AbortSignal;
982
+ }
983
+ /**
984
+ * A module method to pipe between streams and generators forwarding errors and
985
+ * properly cleaning up and provide a callback when the pipeline is complete.
986
+ *
987
+ * ```js
988
+ * const { pipeline } = require('stream');
989
+ * const fs = require('fs');
990
+ * const zlib = require('zlib');
991
+ *
992
+ * // Use the pipeline API to easily pipe a series of streams
993
+ * // together and get notified when the pipeline is fully done.
994
+ *
995
+ * // A pipeline to gzip a potentially huge tar file efficiently:
996
+ *
997
+ * pipeline(
998
+ * fs.createReadStream('archive.tar'),
999
+ * zlib.createGzip(),
1000
+ * fs.createWriteStream('archive.tar.gz'),
1001
+ * (err) => {
1002
+ * if (err) {
1003
+ * console.error('Pipeline failed.', err);
1004
+ * } else {
1005
+ * console.log('Pipeline succeeded.');
1006
+ * }
1007
+ * }
1008
+ * );
1009
+ * ```
1010
+ *
1011
+ * The `pipeline` API provides a promise version, which can also
1012
+ * receive an options argument as the last parameter with a`signal` `AbortSignal` property. When the signal is aborted,`destroy` will be called on the underlying pipeline, with
1013
+ * an`AbortError`.
1014
+ *
1015
+ * ```js
1016
+ * const { pipeline } = require('stream/promises');
1017
+ *
1018
+ * async function run() {
1019
+ * await pipeline(
1020
+ * fs.createReadStream('archive.tar'),
1021
+ * zlib.createGzip(),
1022
+ * fs.createWriteStream('archive.tar.gz')
1023
+ * );
1024
+ * console.log('Pipeline succeeded.');
1025
+ * }
1026
+ *
1027
+ * run().catch(console.error);
1028
+ * ```
1029
+ *
1030
+ * To use an `AbortSignal`, pass it inside an options object,
1031
+ * as the last argument:
1032
+ *
1033
+ * ```js
1034
+ * const { pipeline } = require('stream/promises');
1035
+ *
1036
+ * async function run() {
1037
+ * const ac = new AbortController();
1038
+ * const options = {
1039
+ * signal: ac.signal,
1040
+ * };
1041
+ *
1042
+ * setTimeout(() => ac.abort(), 1);
1043
+ * await pipeline(
1044
+ * fs.createReadStream('archive.tar'),
1045
+ * zlib.createGzip(),
1046
+ * fs.createWriteStream('archive.tar.gz'),
1047
+ * options,
1048
+ * );
1049
+ * }
1050
+ *
1051
+ * run().catch(console.error); // AbortError
1052
+ * ```
1053
+ *
1054
+ * The `pipeline` API also supports async generators:
1055
+ *
1056
+ * ```js
1057
+ * const { pipeline } = require('stream/promises');
1058
+ * const fs = require('fs');
1059
+ *
1060
+ * async function run() {
1061
+ * await pipeline(
1062
+ * fs.createReadStream('lowercase.txt'),
1063
+ * async function* (source) {
1064
+ * source.setEncoding('utf8'); // Work with strings rather than `Buffer`s.
1065
+ * for await (const chunk of source) {
1066
+ * yield chunk.toUpperCase();
1067
+ * }
1068
+ * },
1069
+ * fs.createWriteStream('uppercase.txt')
1070
+ * );
1071
+ * console.log('Pipeline succeeded.');
1072
+ * }
1073
+ *
1074
+ * run().catch(console.error);
1075
+ * ```
1076
+ *
1077
+ * `stream.pipeline()` will call `stream.destroy(err)` on all streams except:
1078
+ *
1079
+ * * `Readable` streams which have emitted `'end'` or `'close'`.
1080
+ * * `Writable` streams which have emitted `'finish'` or `'close'`.
1081
+ *
1082
+ * `stream.pipeline()` leaves dangling event listeners on the streams
1083
+ * after the `callback` has been invoked. In the case of reuse of streams after
1084
+ * failure, this can cause event listener leaks and swallowed errors.
1085
+ * @since v10.0.0
1086
+ * @param callback Called when the pipeline is fully done.
1087
+ */
1088
+ function pipeline<A extends PipelineSource<any>, B extends PipelineDestination<A, any>>(
1089
+ source: A,
1090
+ destination: B,
1091
+ callback?: PipelineCallback<B>
1092
+ ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1093
+ function pipeline<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, B extends PipelineDestination<T1, any>>(
1094
+ source: A,
1095
+ transform1: T1,
1096
+ destination: B,
1097
+ callback?: PipelineCallback<B>
1098
+ ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1099
+ function pipeline<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, T2 extends PipelineTransform<T1, any>, B extends PipelineDestination<T2, any>>(
1100
+ source: A,
1101
+ transform1: T1,
1102
+ transform2: T2,
1103
+ destination: B,
1104
+ callback?: PipelineCallback<B>
1105
+ ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1106
+ function pipeline<
1107
+ A extends PipelineSource<any>,
1108
+ T1 extends PipelineTransform<A, any>,
1109
+ T2 extends PipelineTransform<T1, any>,
1110
+ T3 extends PipelineTransform<T2, any>,
1111
+ B extends PipelineDestination<T3, any>
1112
+ >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, callback?: PipelineCallback<B>): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1113
+ function pipeline<
1114
+ A extends PipelineSource<any>,
1115
+ T1 extends PipelineTransform<A, any>,
1116
+ T2 extends PipelineTransform<T1, any>,
1117
+ T3 extends PipelineTransform<T2, any>,
1118
+ T4 extends PipelineTransform<T3, any>,
1119
+ B extends PipelineDestination<T4, any>
1120
+ >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, callback?: PipelineCallback<B>): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream;
1121
+ function pipeline(
1122
+ streams: ReadonlyArray<NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream>,
1123
+ callback?: (err: NodeJS.ErrnoException | null) => void
1124
+ ): NodeJS.WritableStream;
1125
+ function pipeline(
1126
+ stream1: NodeJS.ReadableStream,
1127
+ stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream,
1128
+ ...streams: Array<NodeJS.ReadWriteStream | NodeJS.WritableStream | ((err: NodeJS.ErrnoException | null) => void)>
1129
+ ): NodeJS.WritableStream;
1130
+ namespace pipeline {
1131
+ function __promisify__<A extends PipelineSource<any>, B extends PipelineDestination<A, any>>(source: A, destination: B, options?: PipelineOptions): PipelinePromise<B>;
1132
+ function __promisify__<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, B extends PipelineDestination<T1, any>>(
1133
+ source: A,
1134
+ transform1: T1,
1135
+ destination: B,
1136
+ options?: PipelineOptions
1137
+ ): PipelinePromise<B>;
1138
+ function __promisify__<A extends PipelineSource<any>, T1 extends PipelineTransform<A, any>, T2 extends PipelineTransform<T1, any>, B extends PipelineDestination<T2, any>>(
1139
+ source: A,
1140
+ transform1: T1,
1141
+ transform2: T2,
1142
+ destination: B,
1143
+ options?: PipelineOptions
1144
+ ): PipelinePromise<B>;
1145
+ function __promisify__<
1146
+ A extends PipelineSource<any>,
1147
+ T1 extends PipelineTransform<A, any>,
1148
+ T2 extends PipelineTransform<T1, any>,
1149
+ T3 extends PipelineTransform<T2, any>,
1150
+ B extends PipelineDestination<T3, any>
1151
+ >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise<B>;
1152
+ function __promisify__<
1153
+ A extends PipelineSource<any>,
1154
+ T1 extends PipelineTransform<A, any>,
1155
+ T2 extends PipelineTransform<T1, any>,
1156
+ T3 extends PipelineTransform<T2, any>,
1157
+ T4 extends PipelineTransform<T3, any>,
1158
+ B extends PipelineDestination<T4, any>
1159
+ >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise<B>;
1160
+ function __promisify__(streams: ReadonlyArray<NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream>, options?: PipelineOptions): Promise<void>;
1161
+ function __promisify__(
1162
+ stream1: NodeJS.ReadableStream,
1163
+ stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream,
1164
+ ...streams: Array<NodeJS.ReadWriteStream | NodeJS.WritableStream | PipelineOptions>
1165
+ ): Promise<void>;
1166
+ }
1167
+ interface Pipe {
1168
+ close(): void;
1169
+ hasRef(): boolean;
1170
+ ref(): void;
1171
+ unref(): void;
1172
+ }
1173
+ const promises: typeof streamPromises;
1174
+ const consumers: typeof streamConsumers;
1175
+ }
1176
+ export = internal;
1177
+ }
1178
+ declare module 'node:stream' {
1179
+ import stream = require('stream');
1180
+ export = stream;
1181
+ }