Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); let node_stream = require("node:stream"); let node_process = require("node:process"); //#region src/utils/stream.ts const pr54206Applied = () => { const [major, minor] = node_process.versions.node.split(".").map((component) => parseInt(component)); return major >= 23 || major === 22 && minor >= 7 || major === 20 && minor >= 18; }; const useReadableToWeb = pr54206Applied(); const createStreamBody = (stream, useNativeReadableToWeb = useReadableToWeb) => { if (useNativeReadableToWeb) return node_stream.Readable.toWeb(stream); let controller; let settled = false; const cleanup = () => { stream.off("data", onData); stream.off("error", onError); stream.off("end", onTerminate); stream.off("close", onTerminate); }; const settle = (callback) => { if (settled) return; settled = true; cleanup(); callback?.(); }; const onData = (chunk) => { if (settled || !controller) return; controller.enqueue(chunk); if ((controller.desiredSize ?? 0) <= 0) stream.pause(); }; const onError = (error) => { settle(() => { controller?.error(error); }); }; const onTerminate = () => { settle(() => { controller?.close(); }); }; return new ReadableStream({ start(streamController) { controller = streamController; stream.on("data", onData); stream.on("error", onError); stream.on("end", onTerminate); stream.on("close", onTerminate); stream.pause(); }, pull() { if (!settled) stream.resume(); }, cancel() { settle(); const ignoreError = () => {}; stream.on("error", ignoreError); stream.once("close", () => stream.off("error", ignoreError)); stream.destroy(); } }); }; //#endregion exports.createStreamBody = createStreamBody;