@contrast/agent-bundle 5.46.0 → 5.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (647) hide show
  1. package/README.md +1 -1
  2. package/node_modules/@contrast/agent/README.md +1 -1
  3. package/node_modules/@contrast/agent/package.json +12 -12
  4. package/node_modules/@contrast/agentify/package.json +15 -15
  5. package/node_modules/@contrast/architecture-components/package.json +5 -5
  6. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/common.js +1 -1
  7. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/handlers.js +23 -10
  8. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/index.js +6 -4
  9. package/node_modules/@contrast/assess/lib/configuration-analysis/install/apollo-server.js +92 -0
  10. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/install/express-session.js +2 -2
  11. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/install/fastify-cookie.js +2 -2
  12. package/node_modules/@contrast/assess/lib/configuration-analysis/install/graphql-yoga.js +90 -0
  13. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/install/hapi.js +2 -2
  14. package/node_modules/@contrast/assess/lib/{session-configuration → configuration-analysis}/install/koa.js +3 -3
  15. package/node_modules/@contrast/assess/lib/dataflow/propagation/install/string/substring.js +1 -1
  16. package/node_modules/@contrast/assess/lib/dataflow/sinks/install/fs.js +8 -15
  17. package/node_modules/@contrast/assess/lib/dataflow/sources/handler.js +9 -2
  18. package/node_modules/@contrast/assess/lib/dataflow/sources/index.js +2 -0
  19. package/node_modules/@contrast/assess/lib/dataflow/sources/install/fastify-websocket.js +63 -0
  20. package/node_modules/@contrast/assess/lib/dataflow/sources/install/http.js +42 -38
  21. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/index.js +1 -1
  22. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/koa-bodyparsers.js +76 -48
  23. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/koa-multer.js +1 -1
  24. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/koa-routers.js +2 -2
  25. package/node_modules/@contrast/assess/lib/dataflow/sources/install/koa/{koa2.js → koa.js} +3 -3
  26. package/node_modules/@contrast/assess/lib/dataflow/sources/install/socket.io.js +80 -0
  27. package/node_modules/@contrast/assess/lib/index.d.ts +4 -3
  28. package/node_modules/@contrast/assess/lib/index.js +1 -1
  29. package/node_modules/@contrast/assess/lib/policy.js +2 -2
  30. package/node_modules/@contrast/assess/package.json +12 -12
  31. package/node_modules/@contrast/common/lib/constants.d.ts +12 -4
  32. package/node_modules/@contrast/common/lib/constants.js +16 -7
  33. package/node_modules/@contrast/common/lib/types.d.ts +5 -1
  34. package/node_modules/@contrast/common/package.json +1 -1
  35. package/node_modules/@contrast/config/lib/common.js +1 -0
  36. package/node_modules/@contrast/config/lib/options.js +7 -1
  37. package/node_modules/@contrast/config/package.json +3 -3
  38. package/node_modules/@contrast/core/package.json +5 -5
  39. package/node_modules/@contrast/deadzones/package.json +5 -5
  40. package/node_modules/@contrast/dep-hooks/lib/export-handler-registry.js +1 -10
  41. package/node_modules/@contrast/dep-hooks/lib/export-hook-descriptor.js +1 -1
  42. package/node_modules/@contrast/dep-hooks/lib/index.d.ts +1 -1
  43. package/node_modules/@contrast/dep-hooks/lib/index.js +1 -1
  44. package/node_modules/@contrast/dep-hooks/lib/package-finder.d.ts +3 -2
  45. package/node_modules/@contrast/dep-hooks/lib/package-finder.js +14 -4
  46. package/node_modules/@contrast/dep-hooks/package.json +4 -4
  47. package/node_modules/@contrast/esm-hooks/README.md +2 -2
  48. package/node_modules/@contrast/esm-hooks/package.json +6 -6
  49. package/node_modules/@contrast/instrumentation/package.json +5 -5
  50. package/node_modules/@contrast/library-analysis/lib/install/library-reporting/dep.json +166 -224
  51. package/node_modules/@contrast/library-analysis/lib/install/library-reporting/index.js +2 -11
  52. package/node_modules/@contrast/library-analysis/lib/install/library-reporting/utils.js +2 -0
  53. package/node_modules/@contrast/library-analysis/lib/install/library-usage/index.js +3 -1
  54. package/node_modules/@contrast/library-analysis/lib/util.js +0 -2
  55. package/node_modules/@contrast/library-analysis/package.json +4 -4
  56. package/node_modules/@contrast/logger/package.json +4 -4
  57. package/node_modules/@contrast/metrics/package.json +6 -6
  58. package/node_modules/@contrast/patcher/package.json +2 -2
  59. package/node_modules/@contrast/protect/lib/error-handlers/index.js +1 -1
  60. package/node_modules/@contrast/protect/lib/error-handlers/install/{koa2.js → koa.js} +4 -4
  61. package/node_modules/@contrast/protect/lib/index.d.ts +1 -1
  62. package/node_modules/@contrast/protect/lib/input-analysis/index.js +2 -3
  63. package/node_modules/@contrast/protect/lib/input-analysis/install/koa-bodyparsers.js +92 -0
  64. package/node_modules/@contrast/protect/lib/input-analysis/install/{koa2.js → koa.js} +5 -5
  65. package/node_modules/@contrast/protect/lib/input-tracing/install/fs.js +0 -8
  66. package/node_modules/@contrast/protect/package.json +11 -11
  67. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/application-activity/translations.js +6 -10
  68. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/routes-observed.js +4 -0
  69. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/index.d.ts +1 -1
  70. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/index.js +1 -1
  71. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/translations.d.ts +1 -1
  72. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/translations.js +22 -9
  73. package/node_modules/@contrast/reporter/lib/reporters/file.js +1 -1
  74. package/node_modules/@contrast/reporter/package.json +6 -6
  75. package/node_modules/@contrast/rewriter/package.json +5 -5
  76. package/node_modules/@contrast/route-coverage/lib/index.d.ts +2 -2
  77. package/node_modules/@contrast/route-coverage/lib/index.js +12 -2
  78. package/node_modules/@contrast/route-coverage/lib/install/express.js +535 -0
  79. package/node_modules/@contrast/route-coverage/lib/install/fastify/fastify-express.js +71 -0
  80. package/node_modules/@contrast/route-coverage/lib/install/fastify/fastify-middie.js +67 -0
  81. package/node_modules/@contrast/route-coverage/lib/install/{fastify.js → fastify/fastify.js} +32 -22
  82. package/node_modules/@contrast/route-coverage/lib/install/{express → fastify}/index.js +6 -5
  83. package/node_modules/@contrast/route-coverage/lib/install/graphql.js +6 -1
  84. package/node_modules/@contrast/route-coverage/lib/install/koa.js +39 -45
  85. package/node_modules/@contrast/route-coverage/lib/install/socket.io.js +127 -0
  86. package/node_modules/@contrast/route-coverage/lib/utils/route-info.js +26 -1
  87. package/node_modules/@contrast/route-coverage/package.json +8 -8
  88. package/node_modules/@contrast/scopes/package.json +5 -5
  89. package/node_modules/@contrast/sec-obs/package.json +9 -9
  90. package/node_modules/@contrast/sources/lib/index.js +65 -22
  91. package/node_modules/@contrast/sources/lib/index.test.js +78 -33
  92. package/node_modules/@contrast/sources/lib/source-info.js +1 -10
  93. package/node_modules/@contrast/sources/package.json +3 -3
  94. package/node_modules/@contrast/telemetry/package.json +5 -5
  95. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.d.ts +697 -30
  96. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.js +697 -30
  97. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.js.map +1 -1
  98. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.d.ts +6 -0
  99. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.js +6 -0
  100. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.js.map +1 -1
  101. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.d.ts +877 -49
  102. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.js +877 -49
  103. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.js.map +1 -1
  104. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.d.ts +13 -4
  105. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js +13 -4
  106. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js.map +1 -1
  107. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.d.ts +1 -1
  108. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.js +1 -1
  109. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.js.map +1 -1
  110. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.d.ts +697 -30
  111. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.js +697 -30
  112. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.js.map +1 -1
  113. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.d.ts +6 -0
  114. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.js +6 -0
  115. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.js.map +1 -1
  116. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.d.ts +877 -49
  117. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.js +877 -49
  118. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.js.map +1 -1
  119. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.d.ts +13 -4
  120. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.js +13 -4
  121. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.js.map +1 -1
  122. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.d.ts +1 -1
  123. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.js +1 -1
  124. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.js.map +1 -1
  125. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.d.ts +697 -30
  126. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.js +729 -61
  127. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.js.map +1 -1
  128. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.d.ts +6 -0
  129. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.js +7 -1
  130. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.js.map +1 -1
  131. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.d.ts +877 -49
  132. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.js +886 -56
  133. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.js.map +1 -1
  134. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.d.ts +13 -4
  135. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js +13 -4
  136. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js.map +1 -1
  137. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.d.ts +1 -1
  138. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.js +1 -1
  139. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.js.map +1 -1
  140. package/node_modules/@opentelemetry/semantic-conventions/package.json +3 -5
  141. package/node_modules/{pino → @pinojs/redact}/.github/dependabot.yml +1 -1
  142. package/node_modules/@pinojs/redact/.github/workflows/ci.yml +48 -0
  143. package/node_modules/@pinojs/redact/.github/workflows/publish-release.yml +43 -0
  144. package/node_modules/{pino/node_modules/sonic-boom → @pinojs/redact}/LICENSE +1 -1
  145. package/node_modules/@pinojs/redact/README.md +350 -0
  146. package/node_modules/@pinojs/redact/benchmarks/basic.js +184 -0
  147. package/node_modules/@pinojs/redact/eslint.config.js +1 -0
  148. package/node_modules/@pinojs/redact/index.d.ts +52 -0
  149. package/node_modules/@pinojs/redact/index.js +529 -0
  150. package/node_modules/@pinojs/redact/index.test-d.ts +22 -0
  151. package/node_modules/@pinojs/redact/package.json +37 -0
  152. package/node_modules/@pinojs/redact/scripts/sync-version.mjs +20 -0
  153. package/node_modules/@pinojs/redact/test/actual-redact-comparison.test.js +211 -0
  154. package/node_modules/@pinojs/redact/test/index.test.js +824 -0
  155. package/node_modules/@pinojs/redact/test/integration.test.js +390 -0
  156. package/node_modules/@pinojs/redact/test/multiple-wildcards.test.js +227 -0
  157. package/node_modules/@pinojs/redact/test/prototype-pollution.test.js +223 -0
  158. package/node_modules/@pinojs/redact/test/selective-clone.test.js +115 -0
  159. package/node_modules/@pinojs/redact/tsconfig.json +19 -0
  160. package/node_modules/@types/node/README.md +1 -1
  161. package/node_modules/@types/node/assert.d.ts +37 -2
  162. package/node_modules/@types/node/buffer.buffer.d.ts +9 -0
  163. package/node_modules/@types/node/buffer.d.ts +8 -4
  164. package/node_modules/@types/node/child_process.d.ts +65 -42
  165. package/node_modules/@types/node/cluster.d.ts +4 -5
  166. package/node_modules/@types/node/console.d.ts +3 -2
  167. package/node_modules/@types/node/crypto.d.ts +1079 -338
  168. package/node_modules/@types/node/dgram.d.ts +9 -8
  169. package/node_modules/@types/node/diagnostics_channel.d.ts +0 -2
  170. package/node_modules/@types/node/dns.d.ts +1 -1
  171. package/node_modules/@types/node/events.d.ts +1 -1
  172. package/node_modules/@types/node/fs/promises.d.ts +39 -21
  173. package/node_modules/@types/node/fs.d.ts +104 -87
  174. package/node_modules/@types/node/globals.d.ts +2 -0
  175. package/node_modules/@types/node/globals.typedarray.d.ts +19 -0
  176. package/node_modules/@types/node/http.d.ts +66 -27
  177. package/node_modules/@types/node/http2.d.ts +178 -52
  178. package/node_modules/@types/node/https.d.ts +91 -62
  179. package/node_modules/@types/node/index.d.ts +2 -0
  180. package/node_modules/@types/node/inspector.d.ts +24 -0
  181. package/node_modules/@types/node/inspector.generated.d.ts +181 -0
  182. package/node_modules/@types/node/net.d.ts +12 -11
  183. package/node_modules/@types/node/os.d.ts +14 -3
  184. package/node_modules/@types/node/package.json +3 -3
  185. package/node_modules/@types/node/perf_hooks.d.ts +6 -8
  186. package/node_modules/@types/node/process.d.ts +19 -23
  187. package/node_modules/@types/node/readline/promises.d.ts +1 -1
  188. package/node_modules/@types/node/sea.d.ts +9 -0
  189. package/node_modules/@types/node/sqlite.d.ts +226 -10
  190. package/node_modules/@types/node/stream/consumers.d.ts +2 -2
  191. package/node_modules/@types/node/stream/web.d.ts +6 -55
  192. package/node_modules/@types/node/stream.d.ts +38 -23
  193. package/node_modules/@types/node/string_decoder.d.ts +2 -2
  194. package/node_modules/@types/node/test.d.ts +29 -3
  195. package/node_modules/@types/node/tls.d.ts +90 -66
  196. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +10 -2
  197. package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +16 -0
  198. package/node_modules/@types/node/ts5.6/index.d.ts +2 -0
  199. package/node_modules/@types/node/ts5.7/index.d.ts +2 -0
  200. package/node_modules/@types/node/url.d.ts +34 -10
  201. package/node_modules/@types/node/util.d.ts +12 -3
  202. package/node_modules/@types/node/v8.d.ts +38 -5
  203. package/node_modules/@types/node/vm.d.ts +169 -88
  204. package/node_modules/@types/node/wasi.d.ts +1 -1
  205. package/node_modules/@types/node/web-globals/crypto.d.ts +32 -0
  206. package/node_modules/@types/node/web-globals/streams.d.ts +22 -0
  207. package/node_modules/@types/node/worker_threads.d.ts +76 -1
  208. package/node_modules/@types/node/zlib.d.ts +25 -24
  209. package/node_modules/axios/CHANGELOG.md +410 -346
  210. package/node_modules/axios/README.md +79 -51
  211. package/node_modules/axios/dist/axios.js +121 -46
  212. package/node_modules/axios/dist/axios.js.map +1 -1
  213. package/node_modules/axios/dist/axios.min.js +2 -2
  214. package/node_modules/axios/dist/axios.min.js.map +1 -1
  215. package/node_modules/axios/dist/browser/axios.cjs +126 -57
  216. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  217. package/node_modules/axios/dist/esm/axios.js +126 -57
  218. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  219. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  220. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  221. package/node_modules/axios/dist/node/axios.cjs +351 -97
  222. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  223. package/node_modules/axios/index.d.cts +4 -0
  224. package/node_modules/axios/index.d.ts +4 -0
  225. package/node_modules/axios/lib/adapters/adapters.js +85 -40
  226. package/node_modules/axios/lib/adapters/fetch.js +1 -1
  227. package/node_modules/axios/lib/adapters/http.js +224 -42
  228. package/node_modules/axios/lib/core/InterceptorManager.js +1 -1
  229. package/node_modules/axios/lib/core/mergeConfig.js +4 -4
  230. package/node_modules/axios/lib/env/data.js +1 -1
  231. package/node_modules/axios/lib/helpers/HttpStatusCode.js +6 -0
  232. package/node_modules/axios/lib/helpers/bind.js +7 -0
  233. package/node_modules/axios/lib/helpers/cookies.js +24 -13
  234. package/node_modules/axios/package.json +9 -4
  235. package/node_modules/detect-libc/lib/filesystem.js +1 -1
  236. package/node_modules/detect-libc/package.json +3 -1
  237. package/node_modules/form-data/CHANGELOG.md +60 -2
  238. package/node_modules/form-data/README.md +4 -4
  239. package/node_modules/form-data/lib/form_data.js +2 -2
  240. package/node_modules/form-data/package.json +4 -4
  241. package/node_modules/ipaddr.js/README.md +1 -0
  242. package/node_modules/ipaddr.js/ipaddr.min.js +1 -1
  243. package/node_modules/ipaddr.js/lib/ipaddr.js +11 -0
  244. package/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +1 -0
  245. package/node_modules/ipaddr.js/package.json +2 -3
  246. package/node_modules/nan/.github/workflows/ci.yml +3 -1
  247. package/node_modules/nan/CHANGELOG.md +4 -1
  248. package/node_modules/nan/README.md +2 -2
  249. package/node_modules/nan/nan.h +25 -15
  250. package/node_modules/nan/nan_maybe_43_inl.h +5 -1
  251. package/node_modules/nan/package.json +2 -2
  252. package/node_modules/node-abi/abi_registry.json +19 -2
  253. package/node_modules/node-abi/package.json +3 -6
  254. package/node_modules/pino/CONTRIBUTING.md +4 -0
  255. package/node_modules/pino/LICENSE +1 -1
  256. package/node_modules/pino/README.md +20 -3
  257. package/node_modules/pino/benchmarks/basic.bench.js +1 -1
  258. package/node_modules/pino/benchmarks/child-child.bench.js +1 -1
  259. package/node_modules/pino/benchmarks/child-creation.bench.js +1 -1
  260. package/node_modules/pino/benchmarks/child.bench.js +1 -1
  261. package/node_modules/pino/benchmarks/deep-object.bench.js +1 -1
  262. package/node_modules/pino/benchmarks/internal/just-pino-heavy.bench.js +1 -1
  263. package/node_modules/pino/benchmarks/internal/just-pino.bench.js +1 -1
  264. package/node_modules/pino/benchmarks/internal/redact.bench.js +1 -1
  265. package/node_modules/pino/benchmarks/long-string.bench.js +1 -1
  266. package/node_modules/pino/benchmarks/multi-arg.bench.js +1 -1
  267. package/node_modules/pino/benchmarks/multistream.js +1 -1
  268. package/node_modules/pino/benchmarks/object.bench.js +1 -1
  269. package/node_modules/pino/benchmarks/utils/generate-benchmark-doc.js +2 -2
  270. package/node_modules/pino/benchmarks/utils/runbench.js +3 -3
  271. package/node_modules/pino/benchmarks/utils/wrap-log-level.js +2 -2
  272. package/node_modules/pino/browser.js +76 -36
  273. package/node_modules/pino/build/sync-version.js +18 -3
  274. package/node_modules/pino/docs/api.md +155 -13
  275. package/node_modules/pino/docs/browser.md +16 -1
  276. package/node_modules/pino/docs/bundling.md +5 -3
  277. package/node_modules/pino/docs/diagnostics.md +16 -0
  278. package/node_modules/pino/docs/ecosystem.md +15 -12
  279. package/node_modules/pino/docs/help.md +29 -3
  280. package/node_modules/pino/docs/lts.md +5 -4
  281. package/node_modules/pino/docs/transports.md +442 -271
  282. package/node_modules/pino/docs/web.md +59 -9
  283. package/node_modules/pino/eslint.config.js +19 -0
  284. package/node_modules/pino/examples/transport.js +2 -2
  285. package/node_modules/pino/file.js +1 -1
  286. package/node_modules/pino/lib/meta.js +1 -1
  287. package/node_modules/pino/lib/multistream.js +17 -2
  288. package/node_modules/pino/lib/proto.js +35 -11
  289. package/node_modules/pino/lib/redaction.js +9 -13
  290. package/node_modules/pino/lib/time.js +29 -1
  291. package/node_modules/pino/lib/tools.js +37 -8
  292. package/node_modules/pino/lib/transport-stream.js +10 -4
  293. package/node_modules/pino/lib/transport.js +23 -9
  294. package/node_modules/pino/lib/worker.js +164 -24
  295. package/node_modules/pino/package.json +28 -27
  296. package/node_modules/pino/pino.d.ts +244 -203
  297. package/node_modules/pino/pino.js +7 -3
  298. package/node_modules/pino/test/basic.test.js +181 -169
  299. package/node_modules/pino/test/broken-pipe.test.js +18 -16
  300. package/node_modules/pino/test/browser-child.test.js +26 -0
  301. package/node_modules/pino/test/browser-is-level-enabled.test.js +101 -0
  302. package/node_modules/pino/test/browser-serializers.test.js +0 -2
  303. package/node_modules/pino/test/browser-transmit.test.js +68 -0
  304. package/node_modules/pino/test/browser.test.js +98 -13
  305. package/node_modules/pino/test/complex-objects.test.js +8 -6
  306. package/node_modules/pino/test/crlf.test.js +7 -5
  307. package/node_modules/pino/test/custom-levels.test.js +80 -66
  308. package/node_modules/pino/test/diagnostics.test.js +107 -0
  309. package/node_modules/pino/test/error-key.test.js +37 -0
  310. package/node_modules/pino/test/error.test.js +48 -43
  311. package/node_modules/pino/test/escaping.test.js +8 -6
  312. package/node_modules/pino/test/esm/esm.mjs +5 -3
  313. package/node_modules/pino/test/esm/index.test.js +14 -27
  314. package/node_modules/pino/test/esm/named-exports.mjs +9 -8
  315. package/node_modules/pino/test/exit.test.js +18 -16
  316. package/node_modules/pino/test/fixtures/broken-pipe/basic.js +1 -1
  317. package/node_modules/pino/test/fixtures/broken-pipe/destination.js +1 -1
  318. package/node_modules/pino/test/fixtures/broken-pipe/syncfalse.js +1 -1
  319. package/node_modules/pino/test/fixtures/console-transport.js +1 -1
  320. package/node_modules/pino/test/fixtures/crashing-transport.js +13 -0
  321. package/node_modules/pino/test/fixtures/default-exit.js +1 -1
  322. package/node_modules/pino/test/fixtures/destination-exit.js +1 -1
  323. package/node_modules/pino/test/fixtures/noop-transport.js +1 -1
  324. package/node_modules/pino/test/fixtures/pretty/null-prototype.js +1 -1
  325. package/node_modules/pino/test/fixtures/stdout-hack-protection.js +1 -1
  326. package/node_modules/pino/test/fixtures/syncfalse-child.js +1 -1
  327. package/node_modules/pino/test/fixtures/syncfalse-exit.js +1 -1
  328. package/node_modules/pino/test/fixtures/syncfalse-flush-exit.js +1 -1
  329. package/node_modules/pino/test/fixtures/syncfalse.js +1 -1
  330. package/node_modules/pino/test/fixtures/syntax-error-esm.mjs +2 -0
  331. package/node_modules/pino/test/fixtures/to-file-transport-with-transform.js +3 -3
  332. package/node_modules/pino/test/fixtures/to-file-transport.js +2 -2
  333. package/node_modules/pino/test/fixtures/to-file-transport.mjs +2 -2
  334. package/node_modules/pino/test/fixtures/transport/index.js +2 -2
  335. package/node_modules/pino/test/fixtures/transport-main.js +1 -1
  336. package/node_modules/pino/test/fixtures/transport-transform.js +1 -1
  337. package/node_modules/pino/test/fixtures/transport-uses-pino-config.js +1 -1
  338. package/node_modules/pino/test/fixtures/transport-worker-data.js +1 -1
  339. package/node_modules/pino/test/fixtures/transport-worker.js +2 -2
  340. package/node_modules/pino/test/fixtures/ts/to-file-transport-with-transform.ts +3 -3
  341. package/node_modules/pino/test/fixtures/ts/to-file-transport.ts +2 -2
  342. package/node_modules/pino/test/fixtures/ts/transpile.cjs +1 -1
  343. package/node_modules/pino/test/fixtures/ts/transport-exit-immediately-with-async-dest.ts +1 -1
  344. package/node_modules/pino/test/fixtures/ts/transport-main.ts +1 -1
  345. package/node_modules/pino/test/fixtures/ts/transport-worker.ts +1 -1
  346. package/node_modules/pino/test/formatters.test.js +46 -37
  347. package/node_modules/pino/test/helper.d.ts +1 -1
  348. package/node_modules/pino/test/helper.js +37 -10
  349. package/node_modules/pino/test/hooks.test.js +45 -28
  350. package/node_modules/pino/test/http.test.js +39 -67
  351. package/node_modules/pino/test/internals/version.test.js +11 -9
  352. package/node_modules/pino/test/is-level-enabled.test.js +66 -72
  353. package/node_modules/pino/test/levels.test.js +245 -141
  354. package/node_modules/pino/test/metadata.test.js +45 -31
  355. package/node_modules/pino/test/mixin-merge-strategy.test.js +9 -7
  356. package/node_modules/pino/test/mixin.test.js +63 -40
  357. package/node_modules/pino/test/multistream.test.js +174 -118
  358. package/node_modules/pino/test/redact.test.js +172 -126
  359. package/node_modules/pino/test/serializers.test.js +61 -57
  360. package/node_modules/pino/test/stdout-protection.test.js +14 -12
  361. package/node_modules/pino/test/syncfalse.test.js +29 -34
  362. package/node_modules/pino/test/timestamp-nano.test.js +37 -0
  363. package/node_modules/pino/test/timestamp.test.js +37 -34
  364. package/node_modules/pino/test/transport/big.test.js +11 -12
  365. package/node_modules/pino/test/transport/bundlers-support.test.js +15 -43
  366. package/node_modules/pino/test/transport/caller.test.js +9 -8
  367. package/node_modules/pino/test/transport/core.test.js +175 -145
  368. package/node_modules/pino/test/transport/core.transpiled.test.ts +17 -19
  369. package/node_modules/pino/test/transport/crash.test.js +36 -0
  370. package/node_modules/pino/test/transport/module-link.test.js +21 -19
  371. package/node_modules/pino/test/transport/pipeline.test.js +109 -8
  372. package/node_modules/pino/test/transport/repl.test.js +4 -3
  373. package/node_modules/pino/test/transport/{syncfalse.test.js → sync-false.test.js} +14 -12
  374. package/node_modules/pino/test/transport/sync-true.test.js +57 -0
  375. package/node_modules/pino/test/transport/targets.test.js +25 -5
  376. package/node_modules/pino/test/transport/uses-pino-config.test.js +16 -17
  377. package/node_modules/pino/test/transport-stream.test.js +40 -0
  378. package/node_modules/pino/test/types/{pino-import.test-d.ts → pino-import.test-d.cts} +4 -3
  379. package/node_modules/pino/test/types/pino-multistream.test-d.ts +1 -1
  380. package/node_modules/pino/test/types/pino-top-export.test-d.ts +1 -0
  381. package/node_modules/pino/test/types/pino-transport.test-d.ts +1 -1
  382. package/node_modules/pino/test/types/pino-type-only.test-d.ts +24 -6
  383. package/node_modules/pino/test/types/pino.test-d.ts +161 -6
  384. package/node_modules/pino/test/types/pino.ts +31 -19
  385. package/node_modules/pino/tsconfig.json +1 -1
  386. package/node_modules/pino-abstract-transport/.github/workflows/ci.yml +2 -4
  387. package/node_modules/pino-abstract-transport/index.js +1 -1
  388. package/node_modules/pino-abstract-transport/package.json +2 -3
  389. package/node_modules/pino-abstract-transport/test/base.test.js +1 -1
  390. package/node_modules/pino-abstract-transport/test/worker.test.js +7 -14
  391. package/node_modules/pino-std-serializers/.github/workflows/ci.yml +5 -5
  392. package/node_modules/pino-std-serializers/Readme.md +1 -0
  393. package/node_modules/pino-std-serializers/package.json +9 -8
  394. package/node_modules/pino-std-serializers/test/err-with-cause.test.js +72 -88
  395. package/node_modules/pino-std-serializers/test/err.test.js +76 -91
  396. package/node_modules/pino-std-serializers/test/req.test.js +142 -98
  397. package/node_modules/pino-std-serializers/test/res.test.js +42 -31
  398. package/node_modules/process-warning/.github/dependabot.yml +1 -1
  399. package/node_modules/process-warning/.github/workflows/ci.yml +1 -2
  400. package/node_modules/process-warning/README.md +4 -4
  401. package/node_modules/process-warning/eslint.config.js +6 -0
  402. package/node_modules/process-warning/package.json +39 -8
  403. package/node_modules/process-warning/test/emit-interpolated-string.test.js +11 -6
  404. package/node_modules/process-warning/test/emit-once-only.test.js +11 -6
  405. package/node_modules/process-warning/test/emit-reset.test.js +10 -6
  406. package/node_modules/process-warning/test/emit-set.test.js +10 -5
  407. package/node_modules/process-warning/test/emit-unlimited.test.js +12 -7
  408. package/node_modules/process-warning/test/index.test.js +20 -20
  409. package/node_modules/process-warning/test/issue-88.test.js +8 -3
  410. package/node_modules/process-warning/test/jest.test.js +17 -15
  411. package/node_modules/process-warning/test/no-warnings.test.js +9 -9
  412. package/node_modules/process-warning/test/promise.js +10 -0
  413. package/node_modules/process-warning/types/index.d.ts +5 -5
  414. package/node_modules/semver/classes/range.js +1 -0
  415. package/node_modules/semver/classes/semver.js +19 -5
  416. package/node_modules/semver/internal/identifiers.js +4 -0
  417. package/node_modules/semver/package.json +3 -3
  418. package/node_modules/thread-stream/.github/workflows/ci.yml +4 -8
  419. package/node_modules/thread-stream/index.d.ts +4 -5
  420. package/node_modules/thread-stream/lib/worker.js +5 -2
  421. package/node_modules/thread-stream/package.json +6 -4
  422. package/node_modules/thread-stream/test/base.test.js +12 -0
  423. package/node_modules/thread-stream/test/never-drain.test.js +3 -1
  424. package/node_modules/thread-stream/test/pkg/pkg.test.js +2 -0
  425. package/node_modules/thread-stream/test/syntax-error.mjs +2 -0
  426. package/node_modules/thread-stream/tsconfig.json +8 -0
  427. package/node_modules/undici-types/agent.d.ts +1 -0
  428. package/node_modules/undici-types/diagnostics-channel.d.ts +0 -1
  429. package/node_modules/undici-types/errors.d.ts +5 -15
  430. package/node_modules/undici-types/eventsource.d.ts +6 -1
  431. package/node_modules/undici-types/index.d.ts +4 -1
  432. package/node_modules/undici-types/interceptors.d.ts +5 -0
  433. package/node_modules/undici-types/package.json +1 -1
  434. package/node_modules/undici-types/snapshot-agent.d.ts +5 -3
  435. package/node_modules/undici-types/webidl.d.ts +82 -21
  436. package/node_modules/yaml/browser/dist/compose/compose-collection.js +1 -1
  437. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +1 -1
  438. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +2 -2
  439. package/node_modules/yaml/browser/dist/errors.js +1 -1
  440. package/node_modules/yaml/browser/dist/nodes/Alias.js +1 -1
  441. package/node_modules/yaml/browser/dist/parse/parser.js +2 -2
  442. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +1 -1
  443. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +1 -1
  444. package/node_modules/yaml/dist/compose/compose-collection.js +1 -1
  445. package/node_modules/yaml/dist/compose/resolve-block-seq.js +1 -1
  446. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +2 -2
  447. package/node_modules/yaml/dist/errors.js +1 -1
  448. package/node_modules/yaml/dist/nodes/Alias.js +1 -1
  449. package/node_modules/yaml/dist/parse/parser.js +2 -2
  450. package/node_modules/yaml/dist/stringify/stringifyNumber.js +1 -1
  451. package/node_modules/yaml/dist/stringify/stringifyPair.js +1 -1
  452. package/node_modules/yaml/package.json +4 -4
  453. package/package.json +3 -3
  454. package/node_modules/@contrast/protect/lib/input-analysis/install/koa-body5.js +0 -63
  455. package/node_modules/@contrast/protect/lib/input-analysis/install/koa-bodyparser4.js +0 -64
  456. package/node_modules/@contrast/route-coverage/lib/install/express/express4.js +0 -157
  457. package/node_modules/@contrast/route-coverage/lib/install/express/express5.js +0 -538
  458. package/node_modules/abort-controller/LICENSE +0 -21
  459. package/node_modules/abort-controller/README.md +0 -98
  460. package/node_modules/abort-controller/browser.js +0 -13
  461. package/node_modules/abort-controller/browser.mjs +0 -11
  462. package/node_modules/abort-controller/dist/abort-controller.d.ts +0 -43
  463. package/node_modules/abort-controller/dist/abort-controller.js +0 -127
  464. package/node_modules/abort-controller/dist/abort-controller.js.map +0 -1
  465. package/node_modules/abort-controller/dist/abort-controller.mjs +0 -118
  466. package/node_modules/abort-controller/dist/abort-controller.mjs.map +0 -1
  467. package/node_modules/abort-controller/dist/abort-controller.umd.js +0 -5
  468. package/node_modules/abort-controller/dist/abort-controller.umd.js.map +0 -1
  469. package/node_modules/abort-controller/package.json +0 -97
  470. package/node_modules/abort-controller/polyfill.js +0 -21
  471. package/node_modules/abort-controller/polyfill.mjs +0 -19
  472. package/node_modules/base64-js/LICENSE +0 -21
  473. package/node_modules/base64-js/README.md +0 -34
  474. package/node_modules/base64-js/base64js.min.js +0 -1
  475. package/node_modules/base64-js/index.d.ts +0 -3
  476. package/node_modules/base64-js/index.js +0 -150
  477. package/node_modules/base64-js/package.json +0 -47
  478. package/node_modules/buffer/AUTHORS.md +0 -73
  479. package/node_modules/buffer/LICENSE +0 -21
  480. package/node_modules/buffer/README.md +0 -410
  481. package/node_modules/buffer/index.d.ts +0 -194
  482. package/node_modules/buffer/index.js +0 -2106
  483. package/node_modules/buffer/package.json +0 -93
  484. package/node_modules/event-target-shim/LICENSE +0 -22
  485. package/node_modules/event-target-shim/README.md +0 -293
  486. package/node_modules/event-target-shim/dist/event-target-shim.js +0 -871
  487. package/node_modules/event-target-shim/dist/event-target-shim.js.map +0 -1
  488. package/node_modules/event-target-shim/dist/event-target-shim.mjs +0 -862
  489. package/node_modules/event-target-shim/dist/event-target-shim.mjs.map +0 -1
  490. package/node_modules/event-target-shim/dist/event-target-shim.umd.js +0 -6
  491. package/node_modules/event-target-shim/dist/event-target-shim.umd.js.map +0 -1
  492. package/node_modules/event-target-shim/index.d.ts +0 -399
  493. package/node_modules/event-target-shim/package.json +0 -82
  494. package/node_modules/events/.airtap.yml +0 -15
  495. package/node_modules/events/.github/FUNDING.yml +0 -12
  496. package/node_modules/events/.travis.yml +0 -18
  497. package/node_modules/events/History.md +0 -118
  498. package/node_modules/events/LICENSE +0 -22
  499. package/node_modules/events/Readme.md +0 -50
  500. package/node_modules/events/events.js +0 -497
  501. package/node_modules/events/package.json +0 -37
  502. package/node_modules/events/security.md +0 -10
  503. package/node_modules/events/tests/add-listeners.js +0 -111
  504. package/node_modules/events/tests/check-listener-leaks.js +0 -101
  505. package/node_modules/events/tests/common.js +0 -104
  506. package/node_modules/events/tests/errors.js +0 -13
  507. package/node_modules/events/tests/events-list.js +0 -28
  508. package/node_modules/events/tests/events-once.js +0 -234
  509. package/node_modules/events/tests/index.js +0 -64
  510. package/node_modules/events/tests/legacy-compat.js +0 -16
  511. package/node_modules/events/tests/listener-count.js +0 -37
  512. package/node_modules/events/tests/listeners-side-effects.js +0 -56
  513. package/node_modules/events/tests/listeners.js +0 -168
  514. package/node_modules/events/tests/max-listeners.js +0 -47
  515. package/node_modules/events/tests/method-names.js +0 -35
  516. package/node_modules/events/tests/modify-in-emit.js +0 -90
  517. package/node_modules/events/tests/num-args.js +0 -60
  518. package/node_modules/events/tests/once.js +0 -83
  519. package/node_modules/events/tests/prepend.js +0 -31
  520. package/node_modules/events/tests/remove-all-listeners.js +0 -133
  521. package/node_modules/events/tests/remove-listeners.js +0 -212
  522. package/node_modules/events/tests/set-max-listeners-side-effects.js +0 -31
  523. package/node_modules/events/tests/special-event-names.js +0 -45
  524. package/node_modules/events/tests/subclass.js +0 -66
  525. package/node_modules/events/tests/symbols.js +0 -25
  526. package/node_modules/fast-redact/.github/workflows/ci.yml +0 -37
  527. package/node_modules/fast-redact/LICENSE +0 -21
  528. package/node_modules/fast-redact/benchmark/index.js +0 -223
  529. package/node_modules/fast-redact/example/default-usage.js +0 -14
  530. package/node_modules/fast-redact/example/intermediate-wildcard-array.js +0 -11
  531. package/node_modules/fast-redact/example/multi-wildcard-array-depth.js +0 -11
  532. package/node_modules/fast-redact/example/multi-wildcard-array-end.js +0 -11
  533. package/node_modules/fast-redact/example/multi-wildcard-array.js +0 -11
  534. package/node_modules/fast-redact/example/serialize-false.js +0 -11
  535. package/node_modules/fast-redact/example/serialize-function.js +0 -4
  536. package/node_modules/fast-redact/example/top-wildcard-object.js +0 -9
  537. package/node_modules/fast-redact/index.js +0 -56
  538. package/node_modules/fast-redact/lib/modifiers.js +0 -291
  539. package/node_modules/fast-redact/lib/parse.js +0 -44
  540. package/node_modules/fast-redact/lib/redactor.js +0 -108
  541. package/node_modules/fast-redact/lib/restorer.js +0 -92
  542. package/node_modules/fast-redact/lib/rx.js +0 -16
  543. package/node_modules/fast-redact/lib/state.js +0 -20
  544. package/node_modules/fast-redact/lib/validator.js +0 -33
  545. package/node_modules/fast-redact/package.json +0 -50
  546. package/node_modules/fast-redact/readme.md +0 -282
  547. package/node_modules/fast-redact/test/index.js +0 -1502
  548. package/node_modules/ieee754/LICENSE +0 -11
  549. package/node_modules/ieee754/README.md +0 -51
  550. package/node_modules/ieee754/index.d.ts +0 -10
  551. package/node_modules/ieee754/index.js +0 -85
  552. package/node_modules/ieee754/package.json +0 -52
  553. package/node_modules/pino/.eslintignore +0 -2
  554. package/node_modules/pino/.eslintrc +0 -8
  555. package/node_modules/pino/.github/workflows/bench.yml +0 -61
  556. package/node_modules/pino/.github/workflows/ci.yml +0 -86
  557. package/node_modules/pino/.github/workflows/lock-threads.yml +0 -30
  558. package/node_modules/pino/.github/workflows/package-manager-ci.yml +0 -99
  559. package/node_modules/pino/.github/workflows/target-main.yml +0 -23
  560. package/node_modules/pino/.taprc.yaml +0 -8
  561. package/node_modules/pino/docsify/sidebar.md +0 -26
  562. package/node_modules/pino/favicon-16x16.png +0 -0
  563. package/node_modules/pino/favicon-32x32.png +0 -0
  564. package/node_modules/pino/lib/worker-pipeline.js +0 -38
  565. package/node_modules/pino/node_modules/sonic-boom/.eslintignore +0 -2
  566. package/node_modules/pino/node_modules/sonic-boom/.husky/pre-commit +0 -4
  567. package/node_modules/pino/node_modules/sonic-boom/.taprc.yaml +0 -11
  568. package/node_modules/pino/node_modules/sonic-boom/README.md +0 -151
  569. package/node_modules/pino/node_modules/sonic-boom/bench.js +0 -98
  570. package/node_modules/pino/node_modules/sonic-boom/check.js +0 -18
  571. package/node_modules/pino/node_modules/sonic-boom/example.js +0 -8
  572. package/node_modules/pino/node_modules/sonic-boom/fixtures/firehose.js +0 -22
  573. package/node_modules/pino/node_modules/sonic-boom/index.js +0 -690
  574. package/node_modules/pino/node_modules/sonic-boom/package.json +0 -50
  575. package/node_modules/pino/node_modules/sonic-boom/test/destroy.test.js +0 -49
  576. package/node_modules/pino/node_modules/sonic-boom/test/end.test.js +0 -98
  577. package/node_modules/pino/node_modules/sonic-boom/test/flush-sync.test.js +0 -140
  578. package/node_modules/pino/node_modules/sonic-boom/test/flush.test.js +0 -419
  579. package/node_modules/pino/node_modules/sonic-boom/test/fsync.test.js +0 -63
  580. package/node_modules/pino/node_modules/sonic-boom/test/helper.js +0 -42
  581. package/node_modules/pino/node_modules/sonic-boom/test/minlength.test.js +0 -35
  582. package/node_modules/pino/node_modules/sonic-boom/test/mode.test.js +0 -116
  583. package/node_modules/pino/node_modules/sonic-boom/test/reopen.test.js +0 -239
  584. package/node_modules/pino/node_modules/sonic-boom/test/retry.test.js +0 -414
  585. package/node_modules/pino/node_modules/sonic-boom/test/sync.test.js +0 -261
  586. package/node_modules/pino/node_modules/sonic-boom/test/write.test.js +0 -465
  587. package/node_modules/pino/node_modules/sonic-boom/types/index.d.ts +0 -62
  588. package/node_modules/pino/node_modules/sonic-boom/types/tests/test.ts +0 -4
  589. package/node_modules/pino/pino-banner.png +0 -0
  590. package/node_modules/pino/pino-logo-hire.png +0 -0
  591. package/node_modules/pino/pino-tree.png +0 -0
  592. package/node_modules/pino/pretty-demo.png +0 -0
  593. package/node_modules/pino/test/errorKey.test.js +0 -34
  594. package/node_modules/pino/test/transport/core.test.ts +0 -236
  595. package/node_modules/pino-std-serializers/.taprc +0 -2
  596. package/node_modules/process/.eslintrc +0 -21
  597. package/node_modules/process/LICENSE +0 -22
  598. package/node_modules/process/README.md +0 -26
  599. package/node_modules/process/browser.js +0 -184
  600. package/node_modules/process/index.js +0 -2
  601. package/node_modules/process/package.json +0 -27
  602. package/node_modules/process/test.js +0 -199
  603. package/node_modules/process-warning/.taprc +0 -2
  604. package/node_modules/readable-stream/LICENSE +0 -47
  605. package/node_modules/readable-stream/README.md +0 -116
  606. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -4
  607. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -4
  608. package/node_modules/readable-stream/lib/_stream_readable.js +0 -4
  609. package/node_modules/readable-stream/lib/_stream_transform.js +0 -4
  610. package/node_modules/readable-stream/lib/_stream_writable.js +0 -4
  611. package/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +0 -52
  612. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -157
  613. package/node_modules/readable-stream/lib/internal/streams/compose.js +0 -194
  614. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -290
  615. package/node_modules/readable-stream/lib/internal/streams/duplex.js +0 -143
  616. package/node_modules/readable-stream/lib/internal/streams/duplexify.js +0 -378
  617. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -286
  618. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -98
  619. package/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +0 -51
  620. package/node_modules/readable-stream/lib/internal/streams/legacy.js +0 -89
  621. package/node_modules/readable-stream/lib/internal/streams/operators.js +0 -457
  622. package/node_modules/readable-stream/lib/internal/streams/passthrough.js +0 -39
  623. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -471
  624. package/node_modules/readable-stream/lib/internal/streams/readable.js +0 -1290
  625. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -39
  626. package/node_modules/readable-stream/lib/internal/streams/transform.js +0 -180
  627. package/node_modules/readable-stream/lib/internal/streams/utils.js +0 -327
  628. package/node_modules/readable-stream/lib/internal/streams/writable.js +0 -819
  629. package/node_modules/readable-stream/lib/internal/validators.js +0 -530
  630. package/node_modules/readable-stream/lib/ours/browser.js +0 -35
  631. package/node_modules/readable-stream/lib/ours/errors.js +0 -343
  632. package/node_modules/readable-stream/lib/ours/index.js +0 -65
  633. package/node_modules/readable-stream/lib/ours/primordials.js +0 -124
  634. package/node_modules/readable-stream/lib/ours/util/inspect.js +0 -55
  635. package/node_modules/readable-stream/lib/ours/util.js +0 -148
  636. package/node_modules/readable-stream/lib/stream/promises.js +0 -43
  637. package/node_modules/readable-stream/lib/stream.js +0 -143
  638. package/node_modules/readable-stream/package.json +0 -88
  639. package/node_modules/safe-buffer/LICENSE +0 -21
  640. package/node_modules/safe-buffer/README.md +0 -584
  641. package/node_modules/safe-buffer/index.d.ts +0 -187
  642. package/node_modules/safe-buffer/index.js +0 -65
  643. package/node_modules/safe-buffer/package.json +0 -51
  644. package/node_modules/string_decoder/LICENSE +0 -48
  645. package/node_modules/string_decoder/README.md +0 -47
  646. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  647. package/node_modules/string_decoder/package.json +0 -34
@@ -1,1290 +0,0 @@
1
- // Copyright Joyent, Inc. and other Node contributors.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a
4
- // copy of this software and associated documentation files (the
5
- // "Software"), to deal in the Software without restriction, including
6
- // without limitation the rights to use, copy, modify, merge, publish,
7
- // distribute, sublicense, and/or sell copies of the Software, and to permit
8
- // persons to whom the Software is furnished to do so, subject to the
9
- // following conditions:
10
- //
11
- // The above copyright notice and this permission notice shall be included
12
- // in all copies or substantial portions of the Software.
13
- //
14
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- 'use strict'
23
-
24
- /* replacement start */
25
-
26
- const process = require('process/')
27
-
28
- /* replacement end */
29
-
30
- const {
31
- ArrayPrototypeIndexOf,
32
- NumberIsInteger,
33
- NumberIsNaN,
34
- NumberParseInt,
35
- ObjectDefineProperties,
36
- ObjectKeys,
37
- ObjectSetPrototypeOf,
38
- Promise,
39
- SafeSet,
40
- SymbolAsyncDispose,
41
- SymbolAsyncIterator,
42
- Symbol
43
- } = require('../../ours/primordials')
44
- module.exports = Readable
45
- Readable.ReadableState = ReadableState
46
- const { EventEmitter: EE } = require('events')
47
- const { Stream, prependListener } = require('./legacy')
48
- const { Buffer } = require('buffer')
49
- const { addAbortSignal } = require('./add-abort-signal')
50
- const eos = require('./end-of-stream')
51
- let debug = require('../../ours/util').debuglog('stream', (fn) => {
52
- debug = fn
53
- })
54
- const BufferList = require('./buffer_list')
55
- const destroyImpl = require('./destroy')
56
- const { getHighWaterMark, getDefaultHighWaterMark } = require('./state')
57
- const {
58
- aggregateTwoErrors,
59
- codes: {
60
- ERR_INVALID_ARG_TYPE,
61
- ERR_METHOD_NOT_IMPLEMENTED,
62
- ERR_OUT_OF_RANGE,
63
- ERR_STREAM_PUSH_AFTER_EOF,
64
- ERR_STREAM_UNSHIFT_AFTER_END_EVENT
65
- },
66
- AbortError
67
- } = require('../../ours/errors')
68
- const { validateObject } = require('../validators')
69
- const kPaused = Symbol('kPaused')
70
- const { StringDecoder } = require('string_decoder/')
71
- const from = require('./from')
72
- ObjectSetPrototypeOf(Readable.prototype, Stream.prototype)
73
- ObjectSetPrototypeOf(Readable, Stream)
74
- const nop = () => {}
75
- const { errorOrDestroy } = destroyImpl
76
- const kObjectMode = 1 << 0
77
- const kEnded = 1 << 1
78
- const kEndEmitted = 1 << 2
79
- const kReading = 1 << 3
80
- const kConstructed = 1 << 4
81
- const kSync = 1 << 5
82
- const kNeedReadable = 1 << 6
83
- const kEmittedReadable = 1 << 7
84
- const kReadableListening = 1 << 8
85
- const kResumeScheduled = 1 << 9
86
- const kErrorEmitted = 1 << 10
87
- const kEmitClose = 1 << 11
88
- const kAutoDestroy = 1 << 12
89
- const kDestroyed = 1 << 13
90
- const kClosed = 1 << 14
91
- const kCloseEmitted = 1 << 15
92
- const kMultiAwaitDrain = 1 << 16
93
- const kReadingMore = 1 << 17
94
- const kDataEmitted = 1 << 18
95
-
96
- // TODO(benjamingr) it is likely slower to do it this way than with free functions
97
- function makeBitMapDescriptor(bit) {
98
- return {
99
- enumerable: false,
100
- get() {
101
- return (this.state & bit) !== 0
102
- },
103
- set(value) {
104
- if (value) this.state |= bit
105
- else this.state &= ~bit
106
- }
107
- }
108
- }
109
- ObjectDefineProperties(ReadableState.prototype, {
110
- objectMode: makeBitMapDescriptor(kObjectMode),
111
- ended: makeBitMapDescriptor(kEnded),
112
- endEmitted: makeBitMapDescriptor(kEndEmitted),
113
- reading: makeBitMapDescriptor(kReading),
114
- // Stream is still being constructed and cannot be
115
- // destroyed until construction finished or failed.
116
- // Async construction is opt in, therefore we start as
117
- // constructed.
118
- constructed: makeBitMapDescriptor(kConstructed),
119
- // A flag to be able to tell if the event 'readable'/'data' is emitted
120
- // immediately, or on a later tick. We set this to true at first, because
121
- // any actions that shouldn't happen until "later" should generally also
122
- // not happen before the first read call.
123
- sync: makeBitMapDescriptor(kSync),
124
- // Whenever we return null, then we set a flag to say
125
- // that we're awaiting a 'readable' event emission.
126
- needReadable: makeBitMapDescriptor(kNeedReadable),
127
- emittedReadable: makeBitMapDescriptor(kEmittedReadable),
128
- readableListening: makeBitMapDescriptor(kReadableListening),
129
- resumeScheduled: makeBitMapDescriptor(kResumeScheduled),
130
- // True if the error was already emitted and should not be thrown again.
131
- errorEmitted: makeBitMapDescriptor(kErrorEmitted),
132
- emitClose: makeBitMapDescriptor(kEmitClose),
133
- autoDestroy: makeBitMapDescriptor(kAutoDestroy),
134
- // Has it been destroyed.
135
- destroyed: makeBitMapDescriptor(kDestroyed),
136
- // Indicates whether the stream has finished destroying.
137
- closed: makeBitMapDescriptor(kClosed),
138
- // True if close has been emitted or would have been emitted
139
- // depending on emitClose.
140
- closeEmitted: makeBitMapDescriptor(kCloseEmitted),
141
- multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),
142
- // If true, a maybeReadMore has been scheduled.
143
- readingMore: makeBitMapDescriptor(kReadingMore),
144
- dataEmitted: makeBitMapDescriptor(kDataEmitted)
145
- })
146
- function ReadableState(options, stream, isDuplex) {
147
- // Duplex streams are both readable and writable, but share
148
- // the same options object.
149
- // However, some cases require setting options to different
150
- // values for the readable and the writable sides of the duplex stream.
151
- // These options can be provided separately as readableXXX and writableXXX.
152
- if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')
153
-
154
- // Bit map field to store ReadableState more effciently with 1 bit per field
155
- // instead of a V8 slot per field.
156
- this.state = kEmitClose | kAutoDestroy | kConstructed | kSync
157
- // Object stream flag. Used to make read(n) ignore n and to
158
- // make all the buffer merging and length checks go away.
159
- if (options && options.objectMode) this.state |= kObjectMode
160
- if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode
161
-
162
- // The point at which it stops calling _read() to fill the buffer
163
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
164
- this.highWaterMark = options
165
- ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)
166
- : getDefaultHighWaterMark(false)
167
-
168
- // A linked list is used to store data chunks instead of an array because the
169
- // linked list can remove elements from the beginning faster than
170
- // array.shift().
171
- this.buffer = new BufferList()
172
- this.length = 0
173
- this.pipes = []
174
- this.flowing = null
175
- this[kPaused] = null
176
-
177
- // Should close be emitted on destroy. Defaults to true.
178
- if (options && options.emitClose === false) this.state &= ~kEmitClose
179
-
180
- // Should .destroy() be called after 'end' (and potentially 'finish').
181
- if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy
182
-
183
- // Indicates whether the stream has errored. When true no further
184
- // _read calls, 'data' or 'readable' events should occur. This is needed
185
- // since when autoDestroy is disabled we need a way to tell whether the
186
- // stream has failed.
187
- this.errored = null
188
-
189
- // Crypto is kind of old and crusty. Historically, its default string
190
- // encoding is 'binary' so we have to make this configurable.
191
- // Everything else in the universe uses 'utf8', though.
192
- this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'
193
-
194
- // Ref the piped dest which we need a drain event on it
195
- // type: null | Writable | Set<Writable>.
196
- this.awaitDrainWriters = null
197
- this.decoder = null
198
- this.encoding = null
199
- if (options && options.encoding) {
200
- this.decoder = new StringDecoder(options.encoding)
201
- this.encoding = options.encoding
202
- }
203
- }
204
- function Readable(options) {
205
- if (!(this instanceof Readable)) return new Readable(options)
206
-
207
- // Checking for a Stream.Duplex instance is faster here instead of inside
208
- // the ReadableState constructor, at least with V8 6.5.
209
- const isDuplex = this instanceof require('./duplex')
210
- this._readableState = new ReadableState(options, this, isDuplex)
211
- if (options) {
212
- if (typeof options.read === 'function') this._read = options.read
213
- if (typeof options.destroy === 'function') this._destroy = options.destroy
214
- if (typeof options.construct === 'function') this._construct = options.construct
215
- if (options.signal && !isDuplex) addAbortSignal(options.signal, this)
216
- }
217
- Stream.call(this, options)
218
- destroyImpl.construct(this, () => {
219
- if (this._readableState.needReadable) {
220
- maybeReadMore(this, this._readableState)
221
- }
222
- })
223
- }
224
- Readable.prototype.destroy = destroyImpl.destroy
225
- Readable.prototype._undestroy = destroyImpl.undestroy
226
- Readable.prototype._destroy = function (err, cb) {
227
- cb(err)
228
- }
229
- Readable.prototype[EE.captureRejectionSymbol] = function (err) {
230
- this.destroy(err)
231
- }
232
- Readable.prototype[SymbolAsyncDispose] = function () {
233
- let error
234
- if (!this.destroyed) {
235
- error = this.readableEnded ? null : new AbortError()
236
- this.destroy(error)
237
- }
238
- return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))
239
- }
240
-
241
- // Manually shove something into the read() buffer.
242
- // This returns true if the highWaterMark has not been hit yet,
243
- // similar to how Writable.write() returns true if you should
244
- // write() some more.
245
- Readable.prototype.push = function (chunk, encoding) {
246
- return readableAddChunk(this, chunk, encoding, false)
247
- }
248
-
249
- // Unshift should *always* be something directly out of read().
250
- Readable.prototype.unshift = function (chunk, encoding) {
251
- return readableAddChunk(this, chunk, encoding, true)
252
- }
253
- function readableAddChunk(stream, chunk, encoding, addToFront) {
254
- debug('readableAddChunk', chunk)
255
- const state = stream._readableState
256
- let err
257
- if ((state.state & kObjectMode) === 0) {
258
- if (typeof chunk === 'string') {
259
- encoding = encoding || state.defaultEncoding
260
- if (state.encoding !== encoding) {
261
- if (addToFront && state.encoding) {
262
- // When unshifting, if state.encoding is set, we have to save
263
- // the string in the BufferList with the state encoding.
264
- chunk = Buffer.from(chunk, encoding).toString(state.encoding)
265
- } else {
266
- chunk = Buffer.from(chunk, encoding)
267
- encoding = ''
268
- }
269
- }
270
- } else if (chunk instanceof Buffer) {
271
- encoding = ''
272
- } else if (Stream._isUint8Array(chunk)) {
273
- chunk = Stream._uint8ArrayToBuffer(chunk)
274
- encoding = ''
275
- } else if (chunk != null) {
276
- err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)
277
- }
278
- }
279
- if (err) {
280
- errorOrDestroy(stream, err)
281
- } else if (chunk === null) {
282
- state.state &= ~kReading
283
- onEofChunk(stream, state)
284
- } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {
285
- if (addToFront) {
286
- if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())
287
- else if (state.destroyed || state.errored) return false
288
- else addChunk(stream, state, chunk, true)
289
- } else if (state.ended) {
290
- errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())
291
- } else if (state.destroyed || state.errored) {
292
- return false
293
- } else {
294
- state.state &= ~kReading
295
- if (state.decoder && !encoding) {
296
- chunk = state.decoder.write(chunk)
297
- if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)
298
- else maybeReadMore(stream, state)
299
- } else {
300
- addChunk(stream, state, chunk, false)
301
- }
302
- }
303
- } else if (!addToFront) {
304
- state.state &= ~kReading
305
- maybeReadMore(stream, state)
306
- }
307
-
308
- // We can push more data if we are below the highWaterMark.
309
- // Also, if we have no data yet, we can stand some more bytes.
310
- // This is to work around cases where hwm=0, such as the repl.
311
- return !state.ended && (state.length < state.highWaterMark || state.length === 0)
312
- }
313
- function addChunk(stream, state, chunk, addToFront) {
314
- if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {
315
- // Use the guard to avoid creating `Set()` repeatedly
316
- // when we have multiple pipes.
317
- if ((state.state & kMultiAwaitDrain) !== 0) {
318
- state.awaitDrainWriters.clear()
319
- } else {
320
- state.awaitDrainWriters = null
321
- }
322
- state.dataEmitted = true
323
- stream.emit('data', chunk)
324
- } else {
325
- // Update the buffer info.
326
- state.length += state.objectMode ? 1 : chunk.length
327
- if (addToFront) state.buffer.unshift(chunk)
328
- else state.buffer.push(chunk)
329
- if ((state.state & kNeedReadable) !== 0) emitReadable(stream)
330
- }
331
- maybeReadMore(stream, state)
332
- }
333
- Readable.prototype.isPaused = function () {
334
- const state = this._readableState
335
- return state[kPaused] === true || state.flowing === false
336
- }
337
-
338
- // Backwards compatibility.
339
- Readable.prototype.setEncoding = function (enc) {
340
- const decoder = new StringDecoder(enc)
341
- this._readableState.decoder = decoder
342
- // If setEncoding(null), decoder.encoding equals utf8.
343
- this._readableState.encoding = this._readableState.decoder.encoding
344
- const buffer = this._readableState.buffer
345
- // Iterate over current buffer to convert already stored Buffers:
346
- let content = ''
347
- for (const data of buffer) {
348
- content += decoder.write(data)
349
- }
350
- buffer.clear()
351
- if (content !== '') buffer.push(content)
352
- this._readableState.length = content.length
353
- return this
354
- }
355
-
356
- // Don't raise the hwm > 1GB.
357
- const MAX_HWM = 0x40000000
358
- function computeNewHighWaterMark(n) {
359
- if (n > MAX_HWM) {
360
- throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)
361
- } else {
362
- // Get the next highest power of 2 to prevent increasing hwm excessively in
363
- // tiny amounts.
364
- n--
365
- n |= n >>> 1
366
- n |= n >>> 2
367
- n |= n >>> 4
368
- n |= n >>> 8
369
- n |= n >>> 16
370
- n++
371
- }
372
- return n
373
- }
374
-
375
- // This function is designed to be inlinable, so please take care when making
376
- // changes to the function body.
377
- function howMuchToRead(n, state) {
378
- if (n <= 0 || (state.length === 0 && state.ended)) return 0
379
- if ((state.state & kObjectMode) !== 0) return 1
380
- if (NumberIsNaN(n)) {
381
- // Only flow one buffer at a time.
382
- if (state.flowing && state.length) return state.buffer.first().length
383
- return state.length
384
- }
385
- if (n <= state.length) return n
386
- return state.ended ? state.length : 0
387
- }
388
-
389
- // You can override either this method, or the async _read(n) below.
390
- Readable.prototype.read = function (n) {
391
- debug('read', n)
392
- // Same as parseInt(undefined, 10), however V8 7.3 performance regressed
393
- // in this scenario, so we are doing it manually.
394
- if (n === undefined) {
395
- n = NaN
396
- } else if (!NumberIsInteger(n)) {
397
- n = NumberParseInt(n, 10)
398
- }
399
- const state = this._readableState
400
- const nOrig = n
401
-
402
- // If we're asking for more than the current hwm, then raise the hwm.
403
- if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)
404
- if (n !== 0) state.state &= ~kEmittedReadable
405
-
406
- // If we're doing read(0) to trigger a readable event, but we
407
- // already have a bunch of data in the buffer, then just trigger
408
- // the 'readable' event and move on.
409
- if (
410
- n === 0 &&
411
- state.needReadable &&
412
- ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)
413
- ) {
414
- debug('read: emitReadable', state.length, state.ended)
415
- if (state.length === 0 && state.ended) endReadable(this)
416
- else emitReadable(this)
417
- return null
418
- }
419
- n = howMuchToRead(n, state)
420
-
421
- // If we've ended, and we're now clear, then finish it up.
422
- if (n === 0 && state.ended) {
423
- if (state.length === 0) endReadable(this)
424
- return null
425
- }
426
-
427
- // All the actual chunk generation logic needs to be
428
- // *below* the call to _read. The reason is that in certain
429
- // synthetic stream cases, such as passthrough streams, _read
430
- // may be a completely synchronous operation which may change
431
- // the state of the read buffer, providing enough data when
432
- // before there was *not* enough.
433
- //
434
- // So, the steps are:
435
- // 1. Figure out what the state of things will be after we do
436
- // a read from the buffer.
437
- //
438
- // 2. If that resulting state will trigger a _read, then call _read.
439
- // Note that this may be asynchronous, or synchronous. Yes, it is
440
- // deeply ugly to write APIs this way, but that still doesn't mean
441
- // that the Readable class should behave improperly, as streams are
442
- // designed to be sync/async agnostic.
443
- // Take note if the _read call is sync or async (ie, if the read call
444
- // has returned yet), so that we know whether or not it's safe to emit
445
- // 'readable' etc.
446
- //
447
- // 3. Actually pull the requested chunks out of the buffer and return.
448
-
449
- // if we need a readable event, then we need to do some reading.
450
- let doRead = (state.state & kNeedReadable) !== 0
451
- debug('need readable', doRead)
452
-
453
- // If we currently have less than the highWaterMark, then also read some.
454
- if (state.length === 0 || state.length - n < state.highWaterMark) {
455
- doRead = true
456
- debug('length less than watermark', doRead)
457
- }
458
-
459
- // However, if we've ended, then there's no point, if we're already
460
- // reading, then it's unnecessary, if we're constructing we have to wait,
461
- // and if we're destroyed or errored, then it's not allowed,
462
- if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {
463
- doRead = false
464
- debug('reading, ended or constructing', doRead)
465
- } else if (doRead) {
466
- debug('do read')
467
- state.state |= kReading | kSync
468
- // If the length is currently zero, then we *need* a readable event.
469
- if (state.length === 0) state.state |= kNeedReadable
470
-
471
- // Call internal read method
472
- try {
473
- this._read(state.highWaterMark)
474
- } catch (err) {
475
- errorOrDestroy(this, err)
476
- }
477
- state.state &= ~kSync
478
-
479
- // If _read pushed data synchronously, then `reading` will be false,
480
- // and we need to re-evaluate how much data we can return to the user.
481
- if (!state.reading) n = howMuchToRead(nOrig, state)
482
- }
483
- let ret
484
- if (n > 0) ret = fromList(n, state)
485
- else ret = null
486
- if (ret === null) {
487
- state.needReadable = state.length <= state.highWaterMark
488
- n = 0
489
- } else {
490
- state.length -= n
491
- if (state.multiAwaitDrain) {
492
- state.awaitDrainWriters.clear()
493
- } else {
494
- state.awaitDrainWriters = null
495
- }
496
- }
497
- if (state.length === 0) {
498
- // If we have nothing in the buffer, then we want to know
499
- // as soon as we *do* get something into the buffer.
500
- if (!state.ended) state.needReadable = true
501
-
502
- // If we tried to read() past the EOF, then emit end on the next tick.
503
- if (nOrig !== n && state.ended) endReadable(this)
504
- }
505
- if (ret !== null && !state.errorEmitted && !state.closeEmitted) {
506
- state.dataEmitted = true
507
- this.emit('data', ret)
508
- }
509
- return ret
510
- }
511
- function onEofChunk(stream, state) {
512
- debug('onEofChunk')
513
- if (state.ended) return
514
- if (state.decoder) {
515
- const chunk = state.decoder.end()
516
- if (chunk && chunk.length) {
517
- state.buffer.push(chunk)
518
- state.length += state.objectMode ? 1 : chunk.length
519
- }
520
- }
521
- state.ended = true
522
- if (state.sync) {
523
- // If we are sync, wait until next tick to emit the data.
524
- // Otherwise we risk emitting data in the flow()
525
- // the readable code triggers during a read() call.
526
- emitReadable(stream)
527
- } else {
528
- // Emit 'readable' now to make sure it gets picked up.
529
- state.needReadable = false
530
- state.emittedReadable = true
531
- // We have to emit readable now that we are EOF. Modules
532
- // in the ecosystem (e.g. dicer) rely on this event being sync.
533
- emitReadable_(stream)
534
- }
535
- }
536
-
537
- // Don't emit readable right away in sync mode, because this can trigger
538
- // another read() call => stack overflow. This way, it might trigger
539
- // a nextTick recursion warning, but that's not so bad.
540
- function emitReadable(stream) {
541
- const state = stream._readableState
542
- debug('emitReadable', state.needReadable, state.emittedReadable)
543
- state.needReadable = false
544
- if (!state.emittedReadable) {
545
- debug('emitReadable', state.flowing)
546
- state.emittedReadable = true
547
- process.nextTick(emitReadable_, stream)
548
- }
549
- }
550
- function emitReadable_(stream) {
551
- const state = stream._readableState
552
- debug('emitReadable_', state.destroyed, state.length, state.ended)
553
- if (!state.destroyed && !state.errored && (state.length || state.ended)) {
554
- stream.emit('readable')
555
- state.emittedReadable = false
556
- }
557
-
558
- // The stream needs another readable event if:
559
- // 1. It is not flowing, as the flow mechanism will take
560
- // care of it.
561
- // 2. It is not ended.
562
- // 3. It is below the highWaterMark, so we can schedule
563
- // another readable later.
564
- state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark
565
- flow(stream)
566
- }
567
-
568
- // At this point, the user has presumably seen the 'readable' event,
569
- // and called read() to consume some data. that may have triggered
570
- // in turn another _read(n) call, in which case reading = true if
571
- // it's in progress.
572
- // However, if we're not ended, or reading, and the length < hwm,
573
- // then go ahead and try to read some more preemptively.
574
- function maybeReadMore(stream, state) {
575
- if (!state.readingMore && state.constructed) {
576
- state.readingMore = true
577
- process.nextTick(maybeReadMore_, stream, state)
578
- }
579
- }
580
- function maybeReadMore_(stream, state) {
581
- // Attempt to read more data if we should.
582
- //
583
- // The conditions for reading more data are (one of):
584
- // - Not enough data buffered (state.length < state.highWaterMark). The loop
585
- // is responsible for filling the buffer with enough data if such data
586
- // is available. If highWaterMark is 0 and we are not in the flowing mode
587
- // we should _not_ attempt to buffer any extra data. We'll get more data
588
- // when the stream consumer calls read() instead.
589
- // - No data in the buffer, and the stream is in flowing mode. In this mode
590
- // the loop below is responsible for ensuring read() is called. Failing to
591
- // call read here would abort the flow and there's no other mechanism for
592
- // continuing the flow if the stream consumer has just subscribed to the
593
- // 'data' event.
594
- //
595
- // In addition to the above conditions to keep reading data, the following
596
- // conditions prevent the data from being read:
597
- // - The stream has ended (state.ended).
598
- // - There is already a pending 'read' operation (state.reading). This is a
599
- // case where the stream has called the implementation defined _read()
600
- // method, but they are processing the call asynchronously and have _not_
601
- // called push() with new data. In this case we skip performing more
602
- // read()s. The execution ends in this method again after the _read() ends
603
- // up calling push() with more data.
604
- while (
605
- !state.reading &&
606
- !state.ended &&
607
- (state.length < state.highWaterMark || (state.flowing && state.length === 0))
608
- ) {
609
- const len = state.length
610
- debug('maybeReadMore read 0')
611
- stream.read(0)
612
- if (len === state.length)
613
- // Didn't get any data, stop spinning.
614
- break
615
- }
616
- state.readingMore = false
617
- }
618
-
619
- // Abstract method. to be overridden in specific implementation classes.
620
- // call cb(er, data) where data is <= n in length.
621
- // for virtual (non-string, non-buffer) streams, "length" is somewhat
622
- // arbitrary, and perhaps not very meaningful.
623
- Readable.prototype._read = function (n) {
624
- throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')
625
- }
626
- Readable.prototype.pipe = function (dest, pipeOpts) {
627
- const src = this
628
- const state = this._readableState
629
- if (state.pipes.length === 1) {
630
- if (!state.multiAwaitDrain) {
631
- state.multiAwaitDrain = true
632
- state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])
633
- }
634
- }
635
- state.pipes.push(dest)
636
- debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)
637
- const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr
638
- const endFn = doEnd ? onend : unpipe
639
- if (state.endEmitted) process.nextTick(endFn)
640
- else src.once('end', endFn)
641
- dest.on('unpipe', onunpipe)
642
- function onunpipe(readable, unpipeInfo) {
643
- debug('onunpipe')
644
- if (readable === src) {
645
- if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
646
- unpipeInfo.hasUnpiped = true
647
- cleanup()
648
- }
649
- }
650
- }
651
- function onend() {
652
- debug('onend')
653
- dest.end()
654
- }
655
- let ondrain
656
- let cleanedUp = false
657
- function cleanup() {
658
- debug('cleanup')
659
- // Cleanup event handlers once the pipe is broken.
660
- dest.removeListener('close', onclose)
661
- dest.removeListener('finish', onfinish)
662
- if (ondrain) {
663
- dest.removeListener('drain', ondrain)
664
- }
665
- dest.removeListener('error', onerror)
666
- dest.removeListener('unpipe', onunpipe)
667
- src.removeListener('end', onend)
668
- src.removeListener('end', unpipe)
669
- src.removeListener('data', ondata)
670
- cleanedUp = true
671
-
672
- // If the reader is waiting for a drain event from this
673
- // specific writer, then it would cause it to never start
674
- // flowing again.
675
- // So, if this is awaiting a drain, then we just call it now.
676
- // If we don't know, then assume that we are waiting for one.
677
- if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()
678
- }
679
- function pause() {
680
- // If the user unpiped during `dest.write()`, it is possible
681
- // to get stuck in a permanently paused state if that write
682
- // also returned false.
683
- // => Check whether `dest` is still a piping destination.
684
- if (!cleanedUp) {
685
- if (state.pipes.length === 1 && state.pipes[0] === dest) {
686
- debug('false write response, pause', 0)
687
- state.awaitDrainWriters = dest
688
- state.multiAwaitDrain = false
689
- } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {
690
- debug('false write response, pause', state.awaitDrainWriters.size)
691
- state.awaitDrainWriters.add(dest)
692
- }
693
- src.pause()
694
- }
695
- if (!ondrain) {
696
- // When the dest drains, it reduces the awaitDrain counter
697
- // on the source. This would be more elegant with a .once()
698
- // handler in flow(), but adding and removing repeatedly is
699
- // too slow.
700
- ondrain = pipeOnDrain(src, dest)
701
- dest.on('drain', ondrain)
702
- }
703
- }
704
- src.on('data', ondata)
705
- function ondata(chunk) {
706
- debug('ondata')
707
- const ret = dest.write(chunk)
708
- debug('dest.write', ret)
709
- if (ret === false) {
710
- pause()
711
- }
712
- }
713
-
714
- // If the dest has an error, then stop piping into it.
715
- // However, don't suppress the throwing behavior for this.
716
- function onerror(er) {
717
- debug('onerror', er)
718
- unpipe()
719
- dest.removeListener('error', onerror)
720
- if (dest.listenerCount('error') === 0) {
721
- const s = dest._writableState || dest._readableState
722
- if (s && !s.errorEmitted) {
723
- // User incorrectly emitted 'error' directly on the stream.
724
- errorOrDestroy(dest, er)
725
- } else {
726
- dest.emit('error', er)
727
- }
728
- }
729
- }
730
-
731
- // Make sure our error handler is attached before userland ones.
732
- prependListener(dest, 'error', onerror)
733
-
734
- // Both close and finish should trigger unpipe, but only once.
735
- function onclose() {
736
- dest.removeListener('finish', onfinish)
737
- unpipe()
738
- }
739
- dest.once('close', onclose)
740
- function onfinish() {
741
- debug('onfinish')
742
- dest.removeListener('close', onclose)
743
- unpipe()
744
- }
745
- dest.once('finish', onfinish)
746
- function unpipe() {
747
- debug('unpipe')
748
- src.unpipe(dest)
749
- }
750
-
751
- // Tell the dest that it's being piped to.
752
- dest.emit('pipe', src)
753
-
754
- // Start the flow if it hasn't been started already.
755
-
756
- if (dest.writableNeedDrain === true) {
757
- pause()
758
- } else if (!state.flowing) {
759
- debug('pipe resume')
760
- src.resume()
761
- }
762
- return dest
763
- }
764
- function pipeOnDrain(src, dest) {
765
- return function pipeOnDrainFunctionResult() {
766
- const state = src._readableState
767
-
768
- // `ondrain` will call directly,
769
- // `this` maybe not a reference to dest,
770
- // so we use the real dest here.
771
- if (state.awaitDrainWriters === dest) {
772
- debug('pipeOnDrain', 1)
773
- state.awaitDrainWriters = null
774
- } else if (state.multiAwaitDrain) {
775
- debug('pipeOnDrain', state.awaitDrainWriters.size)
776
- state.awaitDrainWriters.delete(dest)
777
- }
778
- if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {
779
- src.resume()
780
- }
781
- }
782
- }
783
- Readable.prototype.unpipe = function (dest) {
784
- const state = this._readableState
785
- const unpipeInfo = {
786
- hasUnpiped: false
787
- }
788
-
789
- // If we're not piping anywhere, then do nothing.
790
- if (state.pipes.length === 0) return this
791
- if (!dest) {
792
- // remove all.
793
- const dests = state.pipes
794
- state.pipes = []
795
- this.pause()
796
- for (let i = 0; i < dests.length; i++)
797
- dests[i].emit('unpipe', this, {
798
- hasUnpiped: false
799
- })
800
- return this
801
- }
802
-
803
- // Try to find the right one.
804
- const index = ArrayPrototypeIndexOf(state.pipes, dest)
805
- if (index === -1) return this
806
- state.pipes.splice(index, 1)
807
- if (state.pipes.length === 0) this.pause()
808
- dest.emit('unpipe', this, unpipeInfo)
809
- return this
810
- }
811
-
812
- // Set up data events if they are asked for
813
- // Ensure readable listeners eventually get something.
814
- Readable.prototype.on = function (ev, fn) {
815
- const res = Stream.prototype.on.call(this, ev, fn)
816
- const state = this._readableState
817
- if (ev === 'data') {
818
- // Update readableListening so that resume() may be a no-op
819
- // a few lines down. This is needed to support once('readable').
820
- state.readableListening = this.listenerCount('readable') > 0
821
-
822
- // Try start flowing on next tick if stream isn't explicitly paused.
823
- if (state.flowing !== false) this.resume()
824
- } else if (ev === 'readable') {
825
- if (!state.endEmitted && !state.readableListening) {
826
- state.readableListening = state.needReadable = true
827
- state.flowing = false
828
- state.emittedReadable = false
829
- debug('on readable', state.length, state.reading)
830
- if (state.length) {
831
- emitReadable(this)
832
- } else if (!state.reading) {
833
- process.nextTick(nReadingNextTick, this)
834
- }
835
- }
836
- }
837
- return res
838
- }
839
- Readable.prototype.addListener = Readable.prototype.on
840
- Readable.prototype.removeListener = function (ev, fn) {
841
- const res = Stream.prototype.removeListener.call(this, ev, fn)
842
- if (ev === 'readable') {
843
- // We need to check if there is someone still listening to
844
- // readable and reset the state. However this needs to happen
845
- // after readable has been emitted but before I/O (nextTick) to
846
- // support once('readable', fn) cycles. This means that calling
847
- // resume within the same tick will have no
848
- // effect.
849
- process.nextTick(updateReadableListening, this)
850
- }
851
- return res
852
- }
853
- Readable.prototype.off = Readable.prototype.removeListener
854
- Readable.prototype.removeAllListeners = function (ev) {
855
- const res = Stream.prototype.removeAllListeners.apply(this, arguments)
856
- if (ev === 'readable' || ev === undefined) {
857
- // We need to check if there is someone still listening to
858
- // readable and reset the state. However this needs to happen
859
- // after readable has been emitted but before I/O (nextTick) to
860
- // support once('readable', fn) cycles. This means that calling
861
- // resume within the same tick will have no
862
- // effect.
863
- process.nextTick(updateReadableListening, this)
864
- }
865
- return res
866
- }
867
- function updateReadableListening(self) {
868
- const state = self._readableState
869
- state.readableListening = self.listenerCount('readable') > 0
870
- if (state.resumeScheduled && state[kPaused] === false) {
871
- // Flowing needs to be set to true now, otherwise
872
- // the upcoming resume will not flow.
873
- state.flowing = true
874
-
875
- // Crude way to check if we should resume.
876
- } else if (self.listenerCount('data') > 0) {
877
- self.resume()
878
- } else if (!state.readableListening) {
879
- state.flowing = null
880
- }
881
- }
882
- function nReadingNextTick(self) {
883
- debug('readable nexttick read 0')
884
- self.read(0)
885
- }
886
-
887
- // pause() and resume() are remnants of the legacy readable stream API
888
- // If the user uses them, then switch into old mode.
889
- Readable.prototype.resume = function () {
890
- const state = this._readableState
891
- if (!state.flowing) {
892
- debug('resume')
893
- // We flow only if there is no one listening
894
- // for readable, but we still have to call
895
- // resume().
896
- state.flowing = !state.readableListening
897
- resume(this, state)
898
- }
899
- state[kPaused] = false
900
- return this
901
- }
902
- function resume(stream, state) {
903
- if (!state.resumeScheduled) {
904
- state.resumeScheduled = true
905
- process.nextTick(resume_, stream, state)
906
- }
907
- }
908
- function resume_(stream, state) {
909
- debug('resume', state.reading)
910
- if (!state.reading) {
911
- stream.read(0)
912
- }
913
- state.resumeScheduled = false
914
- stream.emit('resume')
915
- flow(stream)
916
- if (state.flowing && !state.reading) stream.read(0)
917
- }
918
- Readable.prototype.pause = function () {
919
- debug('call pause flowing=%j', this._readableState.flowing)
920
- if (this._readableState.flowing !== false) {
921
- debug('pause')
922
- this._readableState.flowing = false
923
- this.emit('pause')
924
- }
925
- this._readableState[kPaused] = true
926
- return this
927
- }
928
- function flow(stream) {
929
- const state = stream._readableState
930
- debug('flow', state.flowing)
931
- while (state.flowing && stream.read() !== null);
932
- }
933
-
934
- // Wrap an old-style stream as the async data source.
935
- // This is *not* part of the readable stream interface.
936
- // It is an ugly unfortunate mess of history.
937
- Readable.prototype.wrap = function (stream) {
938
- let paused = false
939
-
940
- // TODO (ronag): Should this.destroy(err) emit
941
- // 'error' on the wrapped stream? Would require
942
- // a static factory method, e.g. Readable.wrap(stream).
943
-
944
- stream.on('data', (chunk) => {
945
- if (!this.push(chunk) && stream.pause) {
946
- paused = true
947
- stream.pause()
948
- }
949
- })
950
- stream.on('end', () => {
951
- this.push(null)
952
- })
953
- stream.on('error', (err) => {
954
- errorOrDestroy(this, err)
955
- })
956
- stream.on('close', () => {
957
- this.destroy()
958
- })
959
- stream.on('destroy', () => {
960
- this.destroy()
961
- })
962
- this._read = () => {
963
- if (paused && stream.resume) {
964
- paused = false
965
- stream.resume()
966
- }
967
- }
968
-
969
- // Proxy all the other methods. Important when wrapping filters and duplexes.
970
- const streamKeys = ObjectKeys(stream)
971
- for (let j = 1; j < streamKeys.length; j++) {
972
- const i = streamKeys[j]
973
- if (this[i] === undefined && typeof stream[i] === 'function') {
974
- this[i] = stream[i].bind(stream)
975
- }
976
- }
977
- return this
978
- }
979
- Readable.prototype[SymbolAsyncIterator] = function () {
980
- return streamToAsyncIterator(this)
981
- }
982
- Readable.prototype.iterator = function (options) {
983
- if (options !== undefined) {
984
- validateObject(options, 'options')
985
- }
986
- return streamToAsyncIterator(this, options)
987
- }
988
- function streamToAsyncIterator(stream, options) {
989
- if (typeof stream.read !== 'function') {
990
- stream = Readable.wrap(stream, {
991
- objectMode: true
992
- })
993
- }
994
- const iter = createAsyncIterator(stream, options)
995
- iter.stream = stream
996
- return iter
997
- }
998
- async function* createAsyncIterator(stream, options) {
999
- let callback = nop
1000
- function next(resolve) {
1001
- if (this === stream) {
1002
- callback()
1003
- callback = nop
1004
- } else {
1005
- callback = resolve
1006
- }
1007
- }
1008
- stream.on('readable', next)
1009
- let error
1010
- const cleanup = eos(
1011
- stream,
1012
- {
1013
- writable: false
1014
- },
1015
- (err) => {
1016
- error = err ? aggregateTwoErrors(error, err) : null
1017
- callback()
1018
- callback = nop
1019
- }
1020
- )
1021
- try {
1022
- while (true) {
1023
- const chunk = stream.destroyed ? null : stream.read()
1024
- if (chunk !== null) {
1025
- yield chunk
1026
- } else if (error) {
1027
- throw error
1028
- } else if (error === null) {
1029
- return
1030
- } else {
1031
- await new Promise(next)
1032
- }
1033
- }
1034
- } catch (err) {
1035
- error = aggregateTwoErrors(error, err)
1036
- throw error
1037
- } finally {
1038
- if (
1039
- (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&
1040
- (error === undefined || stream._readableState.autoDestroy)
1041
- ) {
1042
- destroyImpl.destroyer(stream, null)
1043
- } else {
1044
- stream.off('readable', next)
1045
- cleanup()
1046
- }
1047
- }
1048
- }
1049
-
1050
- // Making it explicit these properties are not enumerable
1051
- // because otherwise some prototype manipulation in
1052
- // userland will fail.
1053
- ObjectDefineProperties(Readable.prototype, {
1054
- readable: {
1055
- __proto__: null,
1056
- get() {
1057
- const r = this._readableState
1058
- // r.readable === false means that this is part of a Duplex stream
1059
- // where the readable side was disabled upon construction.
1060
- // Compat. The user might manually disable readable side through
1061
- // deprecated setter.
1062
- return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted
1063
- },
1064
- set(val) {
1065
- // Backwards compat.
1066
- if (this._readableState) {
1067
- this._readableState.readable = !!val
1068
- }
1069
- }
1070
- },
1071
- readableDidRead: {
1072
- __proto__: null,
1073
- enumerable: false,
1074
- get: function () {
1075
- return this._readableState.dataEmitted
1076
- }
1077
- },
1078
- readableAborted: {
1079
- __proto__: null,
1080
- enumerable: false,
1081
- get: function () {
1082
- return !!(
1083
- this._readableState.readable !== false &&
1084
- (this._readableState.destroyed || this._readableState.errored) &&
1085
- !this._readableState.endEmitted
1086
- )
1087
- }
1088
- },
1089
- readableHighWaterMark: {
1090
- __proto__: null,
1091
- enumerable: false,
1092
- get: function () {
1093
- return this._readableState.highWaterMark
1094
- }
1095
- },
1096
- readableBuffer: {
1097
- __proto__: null,
1098
- enumerable: false,
1099
- get: function () {
1100
- return this._readableState && this._readableState.buffer
1101
- }
1102
- },
1103
- readableFlowing: {
1104
- __proto__: null,
1105
- enumerable: false,
1106
- get: function () {
1107
- return this._readableState.flowing
1108
- },
1109
- set: function (state) {
1110
- if (this._readableState) {
1111
- this._readableState.flowing = state
1112
- }
1113
- }
1114
- },
1115
- readableLength: {
1116
- __proto__: null,
1117
- enumerable: false,
1118
- get() {
1119
- return this._readableState.length
1120
- }
1121
- },
1122
- readableObjectMode: {
1123
- __proto__: null,
1124
- enumerable: false,
1125
- get() {
1126
- return this._readableState ? this._readableState.objectMode : false
1127
- }
1128
- },
1129
- readableEncoding: {
1130
- __proto__: null,
1131
- enumerable: false,
1132
- get() {
1133
- return this._readableState ? this._readableState.encoding : null
1134
- }
1135
- },
1136
- errored: {
1137
- __proto__: null,
1138
- enumerable: false,
1139
- get() {
1140
- return this._readableState ? this._readableState.errored : null
1141
- }
1142
- },
1143
- closed: {
1144
- __proto__: null,
1145
- get() {
1146
- return this._readableState ? this._readableState.closed : false
1147
- }
1148
- },
1149
- destroyed: {
1150
- __proto__: null,
1151
- enumerable: false,
1152
- get() {
1153
- return this._readableState ? this._readableState.destroyed : false
1154
- },
1155
- set(value) {
1156
- // We ignore the value if the stream
1157
- // has not been initialized yet.
1158
- if (!this._readableState) {
1159
- return
1160
- }
1161
-
1162
- // Backward compatibility, the user is explicitly
1163
- // managing destroyed.
1164
- this._readableState.destroyed = value
1165
- }
1166
- },
1167
- readableEnded: {
1168
- __proto__: null,
1169
- enumerable: false,
1170
- get() {
1171
- return this._readableState ? this._readableState.endEmitted : false
1172
- }
1173
- }
1174
- })
1175
- ObjectDefineProperties(ReadableState.prototype, {
1176
- // Legacy getter for `pipesCount`.
1177
- pipesCount: {
1178
- __proto__: null,
1179
- get() {
1180
- return this.pipes.length
1181
- }
1182
- },
1183
- // Legacy property for `paused`.
1184
- paused: {
1185
- __proto__: null,
1186
- get() {
1187
- return this[kPaused] !== false
1188
- },
1189
- set(value) {
1190
- this[kPaused] = !!value
1191
- }
1192
- }
1193
- })
1194
-
1195
- // Exposed for testing purposes only.
1196
- Readable._fromList = fromList
1197
-
1198
- // Pluck off n bytes from an array of buffers.
1199
- // Length is the combined lengths of all the buffers in the list.
1200
- // This function is designed to be inlinable, so please take care when making
1201
- // changes to the function body.
1202
- function fromList(n, state) {
1203
- // nothing buffered.
1204
- if (state.length === 0) return null
1205
- let ret
1206
- if (state.objectMode) ret = state.buffer.shift()
1207
- else if (!n || n >= state.length) {
1208
- // Read it all, truncate the list.
1209
- if (state.decoder) ret = state.buffer.join('')
1210
- else if (state.buffer.length === 1) ret = state.buffer.first()
1211
- else ret = state.buffer.concat(state.length)
1212
- state.buffer.clear()
1213
- } else {
1214
- // read part of list.
1215
- ret = state.buffer.consume(n, state.decoder)
1216
- }
1217
- return ret
1218
- }
1219
- function endReadable(stream) {
1220
- const state = stream._readableState
1221
- debug('endReadable', state.endEmitted)
1222
- if (!state.endEmitted) {
1223
- state.ended = true
1224
- process.nextTick(endReadableNT, state, stream)
1225
- }
1226
- }
1227
- function endReadableNT(state, stream) {
1228
- debug('endReadableNT', state.endEmitted, state.length)
1229
-
1230
- // Check that we didn't get one last unshift.
1231
- if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {
1232
- state.endEmitted = true
1233
- stream.emit('end')
1234
- if (stream.writable && stream.allowHalfOpen === false) {
1235
- process.nextTick(endWritableNT, stream)
1236
- } else if (state.autoDestroy) {
1237
- // In case of duplex streams we need a way to detect
1238
- // if the writable side is ready for autoDestroy as well.
1239
- const wState = stream._writableState
1240
- const autoDestroy =
1241
- !wState ||
1242
- (wState.autoDestroy &&
1243
- // We don't expect the writable to ever 'finish'
1244
- // if writable is explicitly set to false.
1245
- (wState.finished || wState.writable === false))
1246
- if (autoDestroy) {
1247
- stream.destroy()
1248
- }
1249
- }
1250
- }
1251
- }
1252
- function endWritableNT(stream) {
1253
- const writable = stream.writable && !stream.writableEnded && !stream.destroyed
1254
- if (writable) {
1255
- stream.end()
1256
- }
1257
- }
1258
- Readable.from = function (iterable, opts) {
1259
- return from(Readable, iterable, opts)
1260
- }
1261
- let webStreamsAdapters
1262
-
1263
- // Lazy to avoid circular references
1264
- function lazyWebStreams() {
1265
- if (webStreamsAdapters === undefined) webStreamsAdapters = {}
1266
- return webStreamsAdapters
1267
- }
1268
- Readable.fromWeb = function (readableStream, options) {
1269
- return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)
1270
- }
1271
- Readable.toWeb = function (streamReadable, options) {
1272
- return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)
1273
- }
1274
- Readable.wrap = function (src, options) {
1275
- var _ref, _src$readableObjectMo
1276
- return new Readable({
1277
- objectMode:
1278
- (_ref =
1279
- (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined
1280
- ? _src$readableObjectMo
1281
- : src.objectMode) !== null && _ref !== undefined
1282
- ? _ref
1283
- : true,
1284
- ...options,
1285
- destroy(err, callback) {
1286
- destroyImpl.destroyer(src, err)
1287
- callback(err)
1288
- }
1289
- }).wrap(src)
1290
- }