// "readable-stream" npm package // just transpiled var { isPromise, isCallable, direct, Object } = import.meta.primordials; globalThis.__IDS_TO_TRACK = process.env.DEBUG_TRACK_EE?.length ? process.env.DEBUG_TRACK_EE.split(",") : process.env.DEBUG_STREAMS?.length ? process.env.DEBUG_STREAMS.split(",") : null; // Separating DEBUG, DEBUG_STREAMS and DEBUG_TRACK_EE env vars makes it easier to focus on the // events in this file rather than all debug output across all files // You can include comma-delimited IDs as the value to either DEBUG_STREAMS or DEBUG_TRACK_EE and it will track // The events and/or all of the outputs for the given stream IDs assigned at stream construction // By default, child_process gives const __TRACK_EE__ = !!process.env.DEBUG_TRACK_EE; const __DEBUG__ = !!( process.env.DEBUG || process.env.DEBUG_STREAMS || __TRACK_EE__ ); var debug = __DEBUG__ ? globalThis.__IDS_TO_TRACK ? // If we are tracking IDs for debug event emitters, we should prefix the debug output with the ID (...args) => { const lastItem = args[args.length - 1]; if (!globalThis.__IDS_TO_TRACK.includes(lastItem)) return; console.log(`ID: ${lastItem}`, ...args.slice(0, -1)); } : (...args) => console.log(...args.slice(0, -1)) : () => {}; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __ObjectSetPrototypeOf = Object.setPrototypeOf; var __require = (x) => import.meta.require(x); var _EE = __require("events"); function DebugEventEmitter(opts) { if (!(this instanceof DebugEventEmitter)) return new DebugEventEmitter(opts); _EE.call(this, opts); const __id = opts.__id; if (__id) { __defProp(this, "__id", { value: __id, readable: true, writable: false, enumerable: false, }); } } __ObjectSetPrototypeOf(DebugEventEmitter.prototype, _EE.prototype); __ObjectSetPrototypeOf(DebugEventEmitter, _EE); DebugEventEmitter.prototype.emit = function (event, ...args) { var __id = this.__id; if (__id) { debug("emit", event, ...args, __id); } else { debug("emit", event, ...args); } return _EE.prototype.emit.call(this, event, ...args); }; DebugEventEmitter.prototype.on = function (event, handler) { var __id = this.__id; if (__id) { debug("on", event, "added", __id); } else { debug("on", event, "added"); } return _EE.prototype.on.call(this, event, handler); }; DebugEventEmitter.prototype.addListener = function (event, handler) { return this.on(event, handler); }; var __commonJS = (cb, mod) => function __require2() { return ( mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports ); }; var __copyProps = (to, from, except, desc) => { if ((from && typeof from === "object") || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], set: (val) => (from[key] = val), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable, configurable: true, }); } return to; }; var runOnNextTick = process.nextTick; function isReadableStream(value) { return ( typeof value === "object" && value !== null && value instanceof ReadableStream ); } function validateBoolean(value, name) { if (typeof value !== "boolean") throw new ERR_INVALID_ARG_TYPE(name, "boolean", value); } /** * @callback validateObject * @param {*} value * @param {string} name * @param {{ * allowArray?: boolean, * allowFunction?: boolean, * nullable?: boolean * }} [options] */ /** @type {validateObject} */ const validateObject = (value, name, options = null) => { const allowArray = options?.allowArray ?? false; const allowFunction = options?.allowFunction ?? false; const nullable = options?.nullable ?? false; if ( (!nullable && value === null) || (!allowArray && ArrayIsArray(value)) || (typeof value !== "object" && (!allowFunction || typeof value !== "function")) ) { throw new ERR_INVALID_ARG_TYPE(name, "Object", value); } }; /** * @callback validateString * @param {*} value * @param {string} name * @returns {asserts value is string} */ /** @type {validateString} */ function validateString(value, name) { if (typeof value !== "string") throw new ERR_INVALID_ARG_TYPE(name, "string", value); } var ArrayIsArray = Array.isArray; //------------------------------------------------------------------------------ // Node error polyfills //------------------------------------------------------------------------------ function ERR_INVALID_ARG_TYPE(name, type, value) { return new Error( `The argument '${name}' is invalid. Received '${value}' for type '${type}'`, ); } function ERR_INVALID_ARG_VALUE(name, value, reason) { return new Error( `The value '${value}' is invalid for argument '${name}'. Reason: ${reason}`, ); } // node_modules/readable-stream/lib/ours/primordials.js var require_primordials = __commonJS({ "node_modules/readable-stream/lib/ours/primordials.js"(exports, module) { "use strict"; module.exports = { ArrayIsArray(self) { return Array.isArray(self); }, ArrayPrototypeIncludes(self, el) { return self.includes(el); }, ArrayPrototypeIndexOf(self, el) { return self.indexOf(el); }, ArrayPrototypeJoin(self, sep) { return self.join(sep); }, ArrayPrototypeMap(self, fn) { return self.map(fn); }, ArrayPrototypePop(self, el) { return self.pop(el); }, ArrayPrototypePush(self, el) { return self.push(el); }, ArrayPrototypeSlice(self, start, end) { return self.slice(start, end); }, Error, FunctionPrototypeCall(fn, thisArgs, ...args) { return fn.call(thisArgs, ...args); }, FunctionPrototypeSymbolHasInstance(self, instance) { return Function.prototype[Symbol.hasInstance].call(self, instance); }, MathFloor: Math.floor, Number, NumberIsInteger: Number.isInteger, NumberIsNaN: Number.isNaN, NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER, NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER, NumberParseInt: Number.parseInt, ObjectDefineProperties(self, props) { return Object.defineProperties(self, props); }, ObjectDefineProperty(self, name, prop) { return Object.defineProperty(self, name, prop); }, ObjectGetOwnPropertyDescriptor(self, name) { return Object.getOwnPropertyDescriptor(self, name); }, ObjectKeys(obj) { return Object.keys(obj); }, ObjectSetPrototypeOf(target, proto) { return Object.setPrototypeOf(target, proto); }, Promise, PromisePrototypeCatch(self, fn) { return self.catch(fn); }, PromisePrototypeThen(self, thenFn, catchFn) { return self.then(thenFn, catchFn); }, PromiseReject(err) { return Promise.reject(err); }, ReflectApply: Reflect.apply, RegExpPrototypeTest(self, value) { return self.test(value); }, SafeSet: Set, String, StringPrototypeSlice(self, start, end) { return self.slice(start, end); }, StringPrototypeToLowerCase(self) { return self.toLowerCase(); }, StringPrototypeToUpperCase(self) { return self.toUpperCase(); }, StringPrototypeTrim(self) { return self.trim(); }, Symbol, SymbolAsyncIterator: Symbol.asyncIterator, SymbolHasInstance: Symbol.hasInstance, SymbolIterator: Symbol.iterator, TypedArrayPrototypeSet(self, buf, len) { return self.set(buf, len); }, Uint8Array, }; }, }); // node_modules/readable-stream/lib/ours/util.js var require_util = __commonJS({ "node_modules/readable-stream/lib/ours/util.js"(exports, module) { "use strict"; var bufferModule = __require("buffer"); var AsyncFunction = Object.getPrototypeOf(async function () {}).constructor; var Blob = globalThis.Blob || bufferModule.Blob; var isBlob = typeof Blob !== "undefined" ? function isBlob2(b) { return b instanceof Blob; } : function isBlob2(b) { return false; }; var AggregateError = class extends Error { constructor(errors) { if (!Array.isArray(errors)) { throw new TypeError( `Expected input to be an Array, got ${typeof errors}`, ); } let message = ""; for (let i = 0; i < errors.length; i++) { message += ` ${errors[i].stack} `; } super(message); this.name = "AggregateError"; this.errors = errors; } }; module.exports = { AggregateError, once(callback) { let called = false; return function (...args) { if (called) { return; } called = true; callback.apply(this, args); }; }, createDeferredPromise: function () { let resolve; let reject; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); return { promise, resolve, reject, }; }, promisify(fn) { return new Promise((resolve, reject) => { fn((err, ...args) => { if (err) { return reject(err); } return resolve(...args); }); }); }, debuglog() { return function () {}; }, format(format, ...args) { return format.replace(/%([sdifj])/g, function (...[_unused, type]) { const replacement = args.shift(); if (type === "f") { return replacement.toFixed(6); } else if (type === "j") { return JSON.stringify(replacement); } else if (type === "s" && typeof replacement === "object") { const ctor = replacement.constructor !== Object ? replacement.constructor.name : ""; return `${ctor} {}`.trim(); } else { return replacement.toString(); } }); }, inspect(value) { switch (typeof value) { case "string": if (value.includes("'")) { if (!value.includes('"')) { return `"${value}"`; } else if (!value.includes("`") && !value.includes("${")) { return `\`${value}\``; } } return `'${value}'`; case "number": if (isNaN(value)) { return "NaN"; } else if (Object.is(value, -0)) { return String(value); } return value; case "bigint": return `${String(value)}n`; case "boolean": case "undefined": return String(value); case "object": return "{}"; } }, types: { isAsyncFunction(fn) { return fn instanceof AsyncFunction; }, isArrayBufferView(arr) { return ArrayBuffer.isView(arr); }, }, isBlob, }; module.exports.promisify.custom = Symbol.for( "nodejs.util.promisify.custom", ); }, }); // node_modules/readable-stream/lib/ours/errors.js var require_errors = __commonJS({ "node_modules/readable-stream/lib/ours/errors.js"(exports, module) { "use strict"; var { format, inspect, AggregateError: CustomAggregateError, } = require_util(); var AggregateError = globalThis.AggregateError || CustomAggregateError; var kIsNodeError = Symbol("kIsNodeError"); var kTypes = [ "string", "function", "number", "object", "Function", "Object", "boolean", "bigint", "symbol", ]; var classRegExp = /^([A-Z][a-z0-9]*)+$/; var nodeInternalPrefix = "__node_internal_"; var codes = {}; function assert(value, message) { if (!value) { throw new codes.ERR_INTERNAL_ASSERTION(message); } } function addNumericalSeparator(val) { let res = ""; let i = val.length; const start = val[0] === "-" ? 1 : 0; for (; i >= start + 4; i -= 3) { res = `_${val.slice(i - 3, i)}${res}`; } return `${val.slice(0, i)}${res}`; } function getMessage(key, msg, args) { if (typeof msg === "function") { assert( msg.length <= args.length, `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`, ); return msg(...args); } const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length; assert( expectedLength === args.length, `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`, ); if (args.length === 0) { return msg; } return format(msg, ...args); } function E(code, message, Base) { if (!Base) { Base = Error; } class NodeError extends Base { constructor(...args) { super(getMessage(code, message, args)); } toString() { return `${this.name} [${code}]: ${this.message}`; } } Object.defineProperties(NodeError.prototype, { name: { value: Base.name, writable: true, enumerable: false, configurable: true, }, toString: { value() { return `${this.name} [${code}]: ${this.message}`; }, writable: true, enumerable: false, configurable: true, }, }); NodeError.prototype.code = code; NodeError.prototype[kIsNodeError] = true; codes[code] = NodeError; } function hideStackFrames(fn) { const hidden = nodeInternalPrefix + fn.name; Object.defineProperty(fn, "name", { value: hidden, }); return fn; } function aggregateTwoErrors(innerError, outerError) { if (innerError && outerError && innerError !== outerError) { if (Array.isArray(outerError.errors)) { outerError.errors.push(innerError); return outerError; } const err = new AggregateError( [outerError, innerError], outerError.message, ); err.code = outerError.code; return err; } return innerError || outerError; } var AbortError = class extends Error { constructor(message = "The operation was aborted", options = void 0) { if (options !== void 0 && typeof options !== "object") { throw new codes.ERR_INVALID_ARG_TYPE("options", "Object", options); } super(message, options); this.code = "ABORT_ERR"; this.name = "AbortError"; } }; E("ERR_ASSERTION", "%s", Error); E( "ERR_INVALID_ARG_TYPE", (name, expected, actual) => { assert(typeof name === "string", "'name' must be a string"); if (!Array.isArray(expected)) { expected = [expected]; } let msg = "The "; if (name.endsWith(" argument")) { msg += `${name} `; } else { msg += `"${name}" ${name.includes(".") ? "property" : "argument"} `; } msg += "must be "; const types = []; const instances = []; const other = []; for (const value of expected) { assert( typeof value === "string", "All expected entries have to be of type string", ); if (kTypes.includes(value)) { types.push(value.toLowerCase()); } else if (classRegExp.test(value)) { instances.push(value); } else { assert( value !== "object", 'The value "object" should be written as "Object"', ); other.push(value); } } if (instances.length > 0) { const pos = types.indexOf("object"); if (pos !== -1) { types.splice(types, pos, 1); instances.push("Object"); } } if (types.length > 0) { switch (types.length) { case 1: msg += `of type ${types[0]}`; break; case 2: msg += `one of type ${types[0]} or ${types[1]}`; break; default: { const last = types.pop(); msg += `one of type ${types.join(", ")}, or ${last}`; } } if (instances.length > 0 || other.length > 0) { msg += " or "; } } if (instances.length > 0) { switch (instances.length) { case 1: msg += `an instance of ${instances[0]}`; break; case 2: msg += `an instance of ${instances[0]} or ${instances[1]}`; break; default: { const last = instances.pop(); msg += `an instance of ${instances.join(", ")}, or ${last}`; } } if (other.length > 0) { msg += " or "; } } switch (other.length) { case 0: break; case 1: if (other[0].toLowerCase() !== other[0]) { msg += "an "; } msg += `${other[0]}`; break; case 2: msg += `one of ${other[0]} or ${other[1]}`; break; default: { const last = other.pop(); msg += `one of ${other.join(", ")}, or ${last}`; } } if (actual == null) { msg += `. Received ${actual}`; } else if (typeof actual === "function" && actual.name) { msg += `. Received function ${actual.name}`; } else if (typeof actual === "object") { var _actual$constructor; if ( (_actual$constructor = actual.constructor) !== null && _actual$constructor !== void 0 && _actual$constructor.name ) { msg += `. Received an instance of ${actual.constructor.name}`; } else { const inspected = inspect(actual, { depth: -1, }); msg += `. Received ${inspected}`; } } else { let inspected = inspect(actual, { colors: false, }); if (inspected.length > 25) { inspected = `${inspected.slice(0, 25)}...`; } msg += `. Received type ${typeof actual} (${inspected})`; } return msg; }, TypeError, ); E( "ERR_INVALID_ARG_VALUE", (name, value, reason = "is invalid") => { let inspected = inspect(value); if (inspected.length > 128) { inspected = inspected.slice(0, 128) + "..."; } const type = name.includes(".") ? "property" : "argument"; return `The ${type} '${name}' ${reason}. Received ${inspected}`; }, TypeError, ); E( "ERR_INVALID_RETURN_VALUE", (input, name, value) => { var _value$constructor; const type = value !== null && value !== void 0 && (_value$constructor = value.constructor) !== null && _value$constructor !== void 0 && _value$constructor.name ? `instance of ${value.constructor.name}` : `type ${typeof value}`; return `Expected ${input} to be returned from the "${name}" function but got ${type}.`; }, TypeError, ); E( "ERR_MISSING_ARGS", (...args) => { assert(args.length > 0, "At least one arg needs to be specified"); let msg; const len = args.length; args = (Array.isArray(args) ? args : [args]) .map((a) => `"${a}"`) .join(" or "); switch (len) { case 1: msg += `The ${args[0]} argument`; break; case 2: msg += `The ${args[0]} and ${args[1]} arguments`; break; default: { const last = args.pop(); msg += `The ${args.join(", ")}, and ${last} arguments`; } break; } return `${msg} must be specified`; }, TypeError, ); E( "ERR_OUT_OF_RANGE", (str, range, input) => { assert(range, 'Missing "range" argument'); let received; if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { received = addNumericalSeparator(String(input)); } else if (typeof input === "bigint") { received = String(input); if (input > 2n ** 32n || input < -(2n ** 32n)) { received = addNumericalSeparator(received); } received += "n"; } else { received = inspect(input); } return `The value of "${str}" is out of range. It must be ${range}. Received ${received}`; }, RangeError, ); E("ERR_MULTIPLE_CALLBACK", "Callback called multiple times", Error); E("ERR_METHOD_NOT_IMPLEMENTED", "The %s method is not implemented", Error); E( "ERR_STREAM_ALREADY_FINISHED", "Cannot call %s after a stream was finished", Error, ); E("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable", Error); E( "ERR_STREAM_DESTROYED", "Cannot call %s after a stream was destroyed", Error, ); E( "ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError, ); E("ERR_STREAM_PREMATURE_CLOSE", "Premature close", Error); E("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF", Error); E( "ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event", Error, ); E("ERR_STREAM_WRITE_AFTER_END", "write after end", Error); E("ERR_UNKNOWN_ENCODING", "Unknown encoding: %s", TypeError); module.exports = { AbortError, aggregateTwoErrors: hideStackFrames(aggregateTwoErrors), hideStackFrames, codes, }; }, }); // node_modules/readable-stream/lib/internal/validators.js var require_validators = __commonJS({ "node_modules/readable-stream/lib/internal/validators.js"(exports, module) { "use strict"; var { ArrayIsArray, ArrayPrototypeIncludes, ArrayPrototypeJoin, ArrayPrototypeMap, NumberIsInteger, NumberMAX_SAFE_INTEGER, NumberMIN_SAFE_INTEGER, NumberParseInt, RegExpPrototypeTest, String: String2, StringPrototypeToUpperCase, StringPrototypeTrim, } = require_primordials(); var { hideStackFrames, codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL, }, } = require_errors(); var { normalizeEncoding } = require_util(); var { isAsyncFunction, isArrayBufferView } = require_util().types; var signals = {}; function isInt32(value) { return value === (value | 0); } function isUint32(value) { return value === value >>> 0; } var octalReg = /^[0-7]+$/; var modeDesc = "must be a 32-bit unsigned integer or an octal string"; function parseFileMode(value, name, def) { if (typeof value === "undefined") { value = def; } if (typeof value === "string") { if (!RegExpPrototypeTest(octalReg, value)) { throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc); } value = NumberParseInt(value, 8); } validateInt32(value, name, 0, 2 ** 32 - 1); return value; } var validateInteger = hideStackFrames( ( value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER, ) => { if (typeof value !== "number") throw new ERR_INVALID_ARG_TYPE(name, "number", value); if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, "an integer", value); if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); }, ); var validateInt32 = hideStackFrames( (value, name, min = -2147483648, max = 2147483647) => { if (typeof value !== "number") { throw new ERR_INVALID_ARG_TYPE(name, "number", value); } if (!isInt32(value)) { if (!NumberIsInteger(value)) { throw new ERR_OUT_OF_RANGE(name, "an integer", value); } throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); } if (value < min || value > max) { throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); } }, ); var validateUint32 = hideStackFrames((value, name, positive) => { if (typeof value !== "number") { throw new ERR_INVALID_ARG_TYPE(name, "number", value); } if (!isUint32(value)) { if (!NumberIsInteger(value)) { throw new ERR_OUT_OF_RANGE(name, "an integer", value); } const min = positive ? 1 : 0; throw new ERR_OUT_OF_RANGE(name, `>= ${min} && < 4294967296`, value); } if (positive && value === 0) { throw new ERR_OUT_OF_RANGE(name, ">= 1 && < 4294967296", value); } }); function validateString(value, name) { if (typeof value !== "string") throw new ERR_INVALID_ARG_TYPE(name, "string", value); } function validateNumber(value, name) { if (typeof value !== "number") throw new ERR_INVALID_ARG_TYPE(name, "number", value); } var validateOneOf = hideStackFrames((value, name, oneOf) => { if (!ArrayPrototypeIncludes(oneOf, value)) { const allowed = ArrayPrototypeJoin( ArrayPrototypeMap(oneOf, (v) => typeof v === "string" ? `'${v}'` : String2(v), ), ", ", ); const reason = "must be one of: " + allowed; throw new ERR_INVALID_ARG_VALUE(name, value, reason); } }); function validateBoolean(value, name) { if (typeof value !== "boolean") throw new ERR_INVALID_ARG_TYPE(name, "boolean", value); } var validateObject = hideStackFrames((value, name, options) => { const useDefaultOptions = options == null; const allowArray = useDefaultOptions ? false : options.allowArray; const allowFunction = useDefaultOptions ? false : options.allowFunction; const nullable = useDefaultOptions ? false : options.nullable; if ( (!nullable && value === null) || (!allowArray && ArrayIsArray(value)) || (typeof value !== "object" && (!allowFunction || typeof value !== "function")) ) { throw new ERR_INVALID_ARG_TYPE(name, "Object", value); } }); var validateArray = hideStackFrames((value, name, minLength = 0) => { if (!ArrayIsArray(value)) { throw new ERR_INVALID_ARG_TYPE(name, "Array", value); } if (value.length < minLength) { const reason = `must be longer than ${minLength}`; throw new ERR_INVALID_ARG_VALUE(name, value, reason); } }); function validateSignalName(signal, name = "signal") { validateString(signal, name); if (signals[signal] === void 0) { if (signals[StringPrototypeToUpperCase(signal)] !== void 0) { throw new ERR_UNKNOWN_SIGNAL( signal + " (signals must use all capital letters)", ); } throw new ERR_UNKNOWN_SIGNAL(signal); } } var validateBuffer = hideStackFrames((buffer, name = "buffer") => { if (!isArrayBufferView(buffer)) { throw new ERR_INVALID_ARG_TYPE( name, ["Buffer", "TypedArray", "DataView"], buffer, ); } }); function validateEncoding(data, encoding) { const normalizedEncoding = normalizeEncoding(encoding); const length = data.length; if (normalizedEncoding === "hex" && length % 2 !== 0) { throw new ERR_INVALID_ARG_VALUE( "encoding", encoding, `is invalid for data of length ${length}`, ); } } function validatePort(port, name = "Port", allowZero = true) { if ( (typeof port !== "number" && typeof port !== "string") || (typeof port === "string" && StringPrototypeTrim(port).length === 0) || +port !== +port >>> 0 || port > 65535 || (port === 0 && !allowZero) ) { throw new ERR_SOCKET_BAD_PORT(name, port, allowZero); } return port | 0; } var validateAbortSignal = hideStackFrames((signal, name) => { if ( signal !== void 0 && (signal === null || typeof signal !== "object" || !("aborted" in signal)) ) { throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal); } }); var validateFunction = hideStackFrames((value, name) => { if (typeof value !== "function") throw new ERR_INVALID_ARG_TYPE(name, "Function", value); }); var validatePlainFunction = hideStackFrames((value, name) => { if (typeof value !== "function" || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, "Function", value); }); var validateUndefined = hideStackFrames((value, name) => { if (value !== void 0) throw new ERR_INVALID_ARG_TYPE(name, "undefined", value); }); module.exports = { isInt32, isUint32, parseFileMode, validateArray, validateBoolean, validateBuffer, validateEncoding, validateFunction, validateInt32, validateInteger, validateNumber, validateObject, validateOneOf, validatePlainFunction, validatePort, validateSignalName, validateString, validateUint32, validateUndefined, validateAbortSignal, }; }, }); // node_modules/readable-stream/lib/internal/streams/utils.js var require_utils = __commonJS({ "node_modules/readable-stream/lib/internal/streams/utils.js"( exports, module, ) { "use strict"; var { Symbol: Symbol2, SymbolAsyncIterator, SymbolIterator, } = require_primordials(); var kDestroyed = Symbol2("kDestroyed"); var kIsErrored = Symbol2("kIsErrored"); var kIsReadable = Symbol2("kIsReadable"); var kIsDisturbed = Symbol2("kIsDisturbed"); function isReadableNodeStream(obj, strict = false) { var _obj$_readableState; return !!( obj && typeof obj.pipe === "function" && typeof obj.on === "function" && (!strict || (typeof obj.pause === "function" && typeof obj.resume === "function")) && (!obj._writableState || ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === void 0 ? void 0 : _obj$_readableState.readable) !== false) && (!obj._writableState || obj._readableState) ); } function isWritableNodeStream(obj) { var _obj$_writableState; return !!( obj && typeof obj.write === "function" && typeof obj.on === "function" && (!obj._readableState || ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === void 0 ? void 0 : _obj$_writableState.writable) !== false) ); } function isDuplexNodeStream(obj) { return !!( obj && typeof obj.pipe === "function" && obj._readableState && typeof obj.on === "function" && typeof obj.write === "function" ); } function isNodeStream(obj) { return ( obj && (obj._readableState || obj._writableState || (typeof obj.write === "function" && typeof obj.on === "function") || (typeof obj.pipe === "function" && typeof obj.on === "function")) ); } function isIterable(obj, isAsync) { if (obj == null) return false; if (isAsync === true) return typeof obj[SymbolAsyncIterator] === "function"; if (isAsync === false) return typeof obj[SymbolIterator] === "function"; return ( typeof obj[SymbolAsyncIterator] === "function" || typeof obj[SymbolIterator] === "function" ); } function isDestroyed(stream) { if (!isNodeStream(stream)) return null; const wState = stream._writableState; const rState = stream._readableState; const state = wState || rState; return !!( stream.destroyed || stream[kDestroyed] || (state !== null && state !== void 0 && state.destroyed) ); } function isWritableEnded(stream) { if (!isWritableNodeStream(stream)) return null; if (stream.writableEnded === true) return true; const wState = stream._writableState; if (wState !== null && wState !== void 0 && wState.errored) return false; if ( typeof (wState === null || wState === void 0 ? void 0 : wState.ended) !== "boolean" ) return null; return wState.ended; } function isWritableFinished(stream, strict) { if (!isWritableNodeStream(stream)) return null; if (stream.writableFinished === true) return true; const wState = stream._writableState; if (wState !== null && wState !== void 0 && wState.errored) return false; if ( typeof (wState === null || wState === void 0 ? void 0 : wState.finished) !== "boolean" ) return null; return !!( wState.finished || (strict === false && wState.ended === true && wState.length === 0) ); } function isReadableEnded(stream) { if (!isReadableNodeStream(stream)) return null; if (stream.readableEnded === true) return true; const rState = stream._readableState; if (!rState || rState.errored) return false; if ( typeof (rState === null || rState === void 0 ? void 0 : rState.ended) !== "boolean" ) return null; return rState.ended; } function isReadableFinished(stream, strict) { if (!isReadableNodeStream(stream)) return null; const rState = stream._readableState; if (rState !== null && rState !== void 0 && rState.errored) return false; if ( typeof (rState === null || rState === void 0 ? void 0 : rState.endEmitted) !== "boolean" ) return null; return !!( rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0) ); } function isReadable(stream) { if (stream && stream[kIsReadable] != null) return stream[kIsReadable]; if ( typeof (stream === null || stream === void 0 ? void 0 : stream.readable) !== "boolean" ) return null; if (isDestroyed(stream)) return false; return ( isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream) ); } function isWritable(stream) { if ( typeof (stream === null || stream === void 0 ? void 0 : stream.writable) !== "boolean" ) return null; if (isDestroyed(stream)) return false; return ( isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream) ); } function isFinished(stream, opts) { if (!isNodeStream(stream)) { return null; } if (isDestroyed(stream)) { return true; } if ( (opts === null || opts === void 0 ? void 0 : opts.readable) !== false && isReadable(stream) ) { return false; } if ( (opts === null || opts === void 0 ? void 0 : opts.writable) !== false && isWritable(stream) ) { return false; } return true; } function isWritableErrored(stream) { var _stream$_writableStat, _stream$_writableStat2; if (!isNodeStream(stream)) { return null; } if (stream.writableErrored) { return stream.writableErrored; } return (_stream$_writableStat = (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === void 0 ? void 0 : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== void 0 ? _stream$_writableStat : null; } function isReadableErrored(stream) { var _stream$_readableStat, _stream$_readableStat2; if (!isNodeStream(stream)) { return null; } if (stream.readableErrored) { return stream.readableErrored; } return (_stream$_readableStat = (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === void 0 ? void 0 : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== void 0 ? _stream$_readableStat : null; } function isClosed(stream) { if (!isNodeStream(stream)) { return null; } if (typeof stream.closed === "boolean") { return stream.closed; } const wState = stream._writableState; const rState = stream._readableState; if ( typeof (wState === null || wState === void 0 ? void 0 : wState.closed) === "boolean" || typeof (rState === null || rState === void 0 ? void 0 : rState.closed) === "boolean" ) { return ( (wState === null || wState === void 0 ? void 0 : wState.closed) || (rState === null || rState === void 0 ? void 0 : rState.closed) ); } if (typeof stream._closed === "boolean" && isOutgoingMessage(stream)) { return stream._closed; } return null; } function isOutgoingMessage(stream) { return ( typeof stream._closed === "boolean" && typeof stream._defaultKeepAlive === "boolean" && typeof stream._removedConnection === "boolean" && typeof stream._removedContLen === "boolean" ); } function isServerResponse(stream) { return typeof stream._sent100 === "boolean" && isOutgoingMessage(stream); } function isServerRequest(stream) { var _stream$req; return ( typeof stream._consuming === "boolean" && typeof stream._dumped === "boolean" && ((_stream$req = stream.req) === null || _stream$req === void 0 ? void 0 : _stream$req.upgradeOrConnect) === void 0 ); } function willEmitClose(stream) { if (!isNodeStream(stream)) return null; const wState = stream._writableState; const rState = stream._readableState; const state = wState || rState; return ( (!state && isServerResponse(stream)) || !!( state && state.autoDestroy && state.emitClose && state.closed === false ) ); } function isDisturbed(stream) { var _stream$kIsDisturbed; return !!( stream && ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== void 0 ? _stream$kIsDisturbed : stream.readableDidRead || stream.readableAborted) ); } function isErrored(stream) { var _ref, _ref2, _ref3, _ref4, _ref5, _stream$kIsErrored, _stream$_readableStat3, _stream$_writableStat3, _stream$_readableStat4, _stream$_writableStat4; return !!( stream && ((_ref = (_ref2 = (_ref3 = (_ref4 = (_ref5 = (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== void 0 ? _stream$kIsErrored : stream.readableErrored) !== null && _ref5 !== void 0 ? _ref5 : stream.writableErrored) !== null && _ref4 !== void 0 ? _ref4 : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === void 0 ? void 0 : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== void 0 ? _ref3 : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === void 0 ? void 0 : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== void 0 ? _ref2 : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === void 0 ? void 0 : _stream$_readableStat4.errored) !== null && _ref !== void 0 ? _ref : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === void 0 ? void 0 : _stream$_writableStat4.errored) ); } module.exports = { kDestroyed, isDisturbed, kIsDisturbed, isErrored, kIsErrored, isReadable, kIsReadable, isClosed, isDestroyed, isDuplexNodeStream, isFinished, isIterable, isReadableNodeStream, isReadableEnded, isReadableFinished, isReadableErrored, isNodeStream, isWritable, isWritableNodeStream, isWritableEnded, isWritableFinished, isWritableErrored, isServerRequest, isServerResponse, willEmitClose, }; }, }); // node_modules/readable-stream/lib/internal/streams/end-of-stream.js var require_end_of_stream = __commonJS({ "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"( exports, module, ) { "use strict"; var { AbortError, codes } = require_errors(); var { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes; var { once } = require_util(); var { validateAbortSignal, validateFunction, validateObject } = require_validators(); var { Promise: Promise2 } = require_primordials(); var { isClosed, isReadable, isReadableNodeStream, isReadableFinished, isReadableErrored, isWritable, isWritableNodeStream, isWritableFinished, isWritableErrored, isNodeStream, willEmitClose: _willEmitClose, } = require_utils(); function isRequest(stream) { return stream.setHeader && typeof stream.abort === "function"; } var nop = () => {}; function eos(stream, options, callback) { var _options$readable, _options$writable; if (arguments.length === 2) { callback = options; options = {}; } else if (options == null) { options = {}; } else { validateObject(options, "options"); } validateFunction(callback, "callback"); validateAbortSignal(options.signal, "options.signal"); callback = once(callback); const readable = (_options$readable = options.readable) !== null && _options$readable !== void 0 ? _options$readable : isReadableNodeStream(stream); const writable = (_options$writable = options.writable) !== null && _options$writable !== void 0 ? _options$writable : isWritableNodeStream(stream); if (!isNodeStream(stream)) { throw new ERR_INVALID_ARG_TYPE("stream", "Stream", stream); } const wState = stream._writableState; const rState = stream._readableState; const onlegacyfinish = () => { if (!stream.writable) { onfinish(); } }; let willEmitClose = _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable; let writableFinished = isWritableFinished(stream, false); const onfinish = () => { writableFinished = true; if (stream.destroyed) { willEmitClose = false; } if (willEmitClose && (!stream.readable || readable)) { return; } if (!readable || readableFinished) { callback.call(stream); } }; let readableFinished = isReadableFinished(stream, false); const onend = () => { readableFinished = true; if (stream.destroyed) { willEmitClose = false; } if (willEmitClose && (!stream.writable || writable)) { return; } if (!writable || writableFinished) { callback.call(stream); } }; const onerror = (err) => { callback.call(stream, err); }; let closed = isClosed(stream); const onclose = () => { closed = true; const errored = isWritableErrored(stream) || isReadableErrored(stream); if (errored && typeof errored !== "boolean") { return callback.call(stream, errored); } if ( readable && !readableFinished && isReadableNodeStream(stream, true) ) { if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE()); } if (writable && !writableFinished) { if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE()); } callback.call(stream); }; const onrequest = () => { stream.req.on("finish", onfinish); }; if (isRequest(stream)) { stream.on("complete", onfinish); if (!willEmitClose) { stream.on("abort", onclose); } if (stream.req) { onrequest(); } else { stream.on("request", onrequest); } } else if (writable && !wState) { stream.on("end", onlegacyfinish); stream.on("close", onlegacyfinish); } if (!willEmitClose && typeof stream.aborted === "boolean") { stream.on("aborted", onclose); } stream.on("end", onend); stream.on("finish", onfinish); if (options.error !== false) { stream.on("error", onerror); } stream.on("close", onclose); if (closed) { runOnNextTick(onclose); } else if ( (wState !== null && wState !== void 0 && wState.errorEmitted) || (rState !== null && rState !== void 0 && rState.errorEmitted) ) { if (!willEmitClose) { runOnNextTick(onclose); } } else if ( !readable && (!willEmitClose || isReadable(stream)) && (writableFinished || isWritable(stream) === false) ) { runOnNextTick(onclose); } else if ( !writable && (!willEmitClose || isWritable(stream)) && (readableFinished || isReadable(stream) === false) ) { runOnNextTick(onclose); } else if (rState && stream.req && stream.aborted) { runOnNextTick(onclose); } const cleanup = () => { callback = nop; stream.removeListener("aborted", onclose); stream.removeListener("complete", onfinish); stream.removeListener("abort", onclose); stream.removeListener("request", onrequest); if (stream.req) stream.req.removeListener("finish", onfinish); stream.removeListener("end", onlegacyfinish); stream.removeListener("close", onlegacyfinish); stream.removeListener("finish", onfinish); stream.removeListener("end", onend); stream.removeListener("error", onerror); stream.removeListener("close", onclose); }; if (options.signal && !closed) { const abort = () => { const endCallback = callback; cleanup(); endCallback.call( stream, new AbortError(void 0, { cause: options.signal.reason, }), ); }; if (options.signal.aborted) { runOnNextTick(abort); } else { const originalCallback = callback; callback = once((...args) => { options.signal.removeEventListener("abort", abort); originalCallback.apply(stream, args); }); options.signal.addEventListener("abort", abort); } } return cleanup; } function finished(stream, opts) { return new Promise2((resolve, reject) => { eos(stream, opts, (err) => { if (err) { reject(err); } else { resolve(); } }); }); } module.exports = eos; module.exports.finished = finished; }, }); // node_modules/readable-stream/lib/internal/streams/operators.js var require_operators = __commonJS({ "node_modules/readable-stream/lib/internal/streams/operators.js"( exports, module, ) { "use strict"; var AbortController = globalThis.AbortController || __require("abort-controller").AbortController; var { codes: { ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE }, AbortError, } = require_errors(); var { validateAbortSignal, validateInteger, validateObject } = require_validators(); var kWeakHandler = require_primordials().Symbol("kWeak"); var { finished } = require_end_of_stream(); var { ArrayPrototypePush, MathFloor, Number: Number2, NumberIsNaN, Promise: Promise2, PromiseReject, PromisePrototypeCatch, Symbol: Symbol2, } = require_primordials(); var kEmpty = Symbol2("kEmpty"); var kEof = Symbol2("kEof"); function map(fn, options) { if (typeof fn !== "function") { throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); } if (options != null) { validateObject(options, "options"); } if ( (options === null || options === void 0 ? void 0 : options.signal) != null ) { validateAbortSignal(options.signal, "options.signal"); } let concurrency = 1; if ( (options === null || options === void 0 ? void 0 : options.concurrency) != null ) { concurrency = MathFloor(options.concurrency); } validateInteger(concurrency, "concurrency", 1); return async function* map2() { var _options$signal, _options$signal2; const ac = new AbortController(); const stream = this; const queue = []; const signal = ac.signal; const signalOpt = { signal, }; const abort = () => ac.abort(); if ( options !== null && options !== void 0 && (_options$signal = options.signal) !== null && _options$signal !== void 0 && _options$signal.aborted ) { abort(); } options === null || options === void 0 ? void 0 : (_options$signal2 = options.signal) === null || _options$signal2 === void 0 ? void 0 : _options$signal2.addEventListener("abort", abort); let next; let resume; let done = false; function onDone() { done = true; } async function pump() { try { for await (let val of stream) { var _val; if (done) { return; } if (signal.aborted) { throw new AbortError(); } try { val = fn(val, signalOpt); } catch (err) { val = PromiseReject(err); } if (val === kEmpty) { continue; } if ( typeof ((_val = val) === null || _val === void 0 ? void 0 : _val.catch) === "function" ) { val.catch(onDone); } queue.push(val); if (next) { next(); next = null; } if (!done && queue.length && queue.length >= concurrency) { await new Promise2((resolve) => { resume = resolve; }); } } queue.push(kEof); } catch (err) { const val = PromiseReject(err); PromisePrototypeCatch(val, onDone); queue.push(val); } finally { var _options$signal3; done = true; if (next) { next(); next = null; } options === null || options === void 0 ? void 0 : (_options$signal3 = options.signal) === null || _options$signal3 === void 0 ? void 0 : _options$signal3.removeEventListener("abort", abort); } } pump(); try { while (true) { while (queue.length > 0) { const val = await queue[0]; if (val === kEof) { return; } if (signal.aborted) { throw new AbortError(); } if (val !== kEmpty) { yield val; } queue.shift(); if (resume) { resume(); resume = null; } } await new Promise2((resolve) => { next = resolve; }); } } finally { ac.abort(); done = true; if (resume) { resume(); resume = null; } } }.call(this); } function asIndexedPairs(options = void 0) { if (options != null) { validateObject(options, "options"); } if ( (options === null || options === void 0 ? void 0 : options.signal) != null ) { validateAbortSignal(options.signal, "options.signal"); } return async function* asIndexedPairs2() { let index = 0; for await (const val of this) { var _options$signal4; if ( options !== null && options !== void 0 && (_options$signal4 = options.signal) !== null && _options$signal4 !== void 0 && _options$signal4.aborted ) { throw new AbortError({ cause: options.signal.reason, }); } yield [index++, val]; } }.call(this); } async function some(fn, options = void 0) { for await (const unused of filter.call(this, fn, options)) { return true; } return false; } async function every(fn, options = void 0) { if (typeof fn !== "function") { throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); } return !(await some.call( this, async (...args) => { return !(await fn(...args)); }, options, )); } async function find(fn, options) { for await (const result of filter.call(this, fn, options)) { return result; } return void 0; } async function forEach(fn, options) { if (typeof fn !== "function") { throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); } async function forEachFn(value, options2) { await fn(value, options2); return kEmpty; } for await (const unused of map.call(this, forEachFn, options)); } function filter(fn, options) { if (typeof fn !== "function") { throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); } async function filterFn(value, options2) { if (await fn(value, options2)) { return value; } return kEmpty; } return map.call(this, filterFn, options); } var ReduceAwareErrMissingArgs = class extends ERR_MISSING_ARGS { constructor() { super("reduce"); this.message = "Reduce of an empty stream requires an initial value"; } }; async function reduce(reducer, initialValue, options) { var _options$signal5; if (typeof reducer !== "function") { throw new ERR_INVALID_ARG_TYPE( "reducer", ["Function", "AsyncFunction"], reducer, ); } if (options != null) { validateObject(options, "options"); } if ( (options === null || options === void 0 ? void 0 : options.signal) != null ) { validateAbortSignal(options.signal, "options.signal"); } let hasInitialValue = arguments.length > 1; if ( options !== null && options !== void 0 && (_options$signal5 = options.signal) !== null && _options$signal5 !== void 0 && _options$signal5.aborted ) { const err = new AbortError(void 0, { cause: options.signal.reason, }); this.once("error", () => {}); await finished(this.destroy(err)); throw err; } const ac = new AbortController(); const signal = ac.signal; if (options !== null && options !== void 0 && options.signal) { const opts = { once: true, [kWeakHandler]: this, }; options.signal.addEventListener("abort", () => ac.abort(), opts); } let gotAnyItemFromStream = false; try { for await (const value of this) { var _options$signal6; gotAnyItemFromStream = true; if ( options !== null && options !== void 0 && (_options$signal6 = options.signal) !== null && _options$signal6 !== void 0 && _options$signal6.aborted ) { throw new AbortError(); } if (!hasInitialValue) { initialValue = value; hasInitialValue = true; } else { initialValue = await reducer(initialValue, value, { signal, }); } } if (!gotAnyItemFromStream && !hasInitialValue) { throw new ReduceAwareErrMissingArgs(); } } finally { ac.abort(); } return initialValue; } async function toArray(options) { if (options != null) { validateObject(options, "options"); } if ( (options === null || options === void 0 ? void 0 : options.signal) != null ) { validateAbortSignal(options.signal, "options.signal"); } const result = []; for await (const val of this) { var _options$signal7; if ( options !== null && options !== void 0 && (_options$signal7 = options.signal) !== null && _options$signal7 !== void 0 && _options$signal7.aborted ) { throw new AbortError(void 0, { cause: options.signal.reason, }); } ArrayPrototypePush(result, val); } return result; } function flatMap(fn, options) { const values = map.call(this, fn, options); return async function* flatMap2() { for await (const val of values) { yield* val; } }.call(this); } function toIntegerOrInfinity(number) { number = Number2(number); if (NumberIsNaN(number)) { return 0; } if (number < 0) { throw new ERR_OUT_OF_RANGE("number", ">= 0", number); } return number; } function drop(number, options = void 0) { if (options != null) { validateObject(options, "options"); } if ( (options === null || options === void 0 ? void 0 : options.signal) != null ) { validateAbortSignal(options.signal, "options.signal"); } number = toIntegerOrInfinity(number); return async function* drop2() { var _options$signal8; if ( options !== null && options !== void 0 && (_options$signal8 = options.signal) !== null && _options$signal8 !== void 0 && _options$signal8.aborted ) { throw new AbortError(); } for await (const val of this) { var _options$signal9; if ( options !== null && options !== void 0 && (_options$signal9 = options.signal) !== null && _options$signal9 !== void 0 && _options$signal9.aborted ) { throw new AbortError(); } if (number-- <= 0) { yield val; } } }.call(this); } function take(number, options = void 0) { if (options != null) { validateObject(options, "options"); } if ( (options === null || options === void 0 ? void 0 : options.signal) != null ) { validateAbortSignal(options.signal, "options.signal"); } number = toIntegerOrInfinity(number); return async function* take2() { var _options$signal10; if ( options !== null && options !== void 0 && (_options$signal10 = options.signal) !== null && _options$signal10 !== void 0 && _options$signal10.aborted ) { throw new AbortError(); } for await (const val of this) { var _options$signal11; if ( options !== null && options !== void 0 && (_options$signal11 = options.signal) !== null && _options$signal11 !== void 0 && _options$signal11.aborted ) { throw new AbortError(); } if (number-- > 0) { yield val; } else { return; } } }.call(this); } module.exports.streamReturningOperators = { asIndexedPairs, drop, filter, flatMap, map, take, }; module.exports.promiseReturningOperators = { every, forEach, reduce, toArray, some, find, }; }, }); // node_modules/readable-stream/lib/internal/streams/destroy.js var require_destroy = __commonJS({ "node_modules/readable-stream/lib/internal/streams/destroy.js"( exports, module, ) { "use strict"; var { aggregateTwoErrors, codes: { ERR_MULTIPLE_CALLBACK }, AbortError, } = require_errors(); var { Symbol: Symbol2 } = require_primordials(); var { kDestroyed, isDestroyed, isFinished, isServerRequest } = require_utils(); var kDestroy = "#kDestroy"; var kConstruct = "#kConstruct"; function checkError(err, w, r) { if (err) { err.stack; if (w && !w.errored) { w.errored = err; } if (r && !r.errored) { r.errored = err; } } } function destroy(err, cb) { const r = this._readableState; const w = this._writableState; const s = w || r; if ((w && w.destroyed) || (r && r.destroyed)) { if (typeof cb === "function") { cb(); } return this; } checkError(err, w, r); if (w) { w.destroyed = true; } if (r) { r.destroyed = true; } if (!s.constructed) { this.once(kDestroy, (er) => { _destroy(this, aggregateTwoErrors(er, err), cb); }); } else { _destroy(this, err, cb); } return this; } function _destroy(self, err, cb) { let called = false; function onDestroy(err2) { if (called) { return; } called = true; const r = self._readableState; const w = self._writableState; checkError(err2, w, r); if (w) { w.closed = true; } if (r) { r.closed = true; } if (typeof cb === "function") { cb(err2); } if (err2) { runOnNextTick(emitErrorCloseNT, self, err2); } else { runOnNextTick(emitCloseNT, self); } } try { self._destroy(err || null, onDestroy); } catch (err2) { onDestroy(err2); } } function emitErrorCloseNT(self, err) { emitErrorNT(self, err); emitCloseNT(self); } function emitCloseNT(self) { const r = self._readableState; const w = self._writableState; if (w) { w.closeEmitted = true; } if (r) { r.closeEmitted = true; } if ((w && w.emitClose) || (r && r.emitClose)) { self.emit("close"); } } function emitErrorNT(self, err) { const r = self?._readableState; const w = self?._writableState; if (w?.errorEmitted || r?.errorEmitted) { return; } if (w) { w.errorEmitted = true; } if (r) { r.errorEmitted = true; } self?.emit?.("error", err); } function undestroy() { const r = this._readableState; const w = this._writableState; if (r) { r.constructed = true; r.closed = false; r.closeEmitted = false; r.destroyed = false; r.errored = null; r.errorEmitted = false; r.reading = false; r.ended = r.readable === false; r.endEmitted = r.readable === false; } if (w) { w.constructed = true; w.destroyed = false; w.closed = false; w.closeEmitted = false; w.errored = null; w.errorEmitted = false; w.finalCalled = false; w.prefinished = false; w.ended = w.writable === false; w.ending = w.writable === false; w.finished = w.writable === false; } } function errorOrDestroy(stream, err, sync) { const r = stream?._readableState; const w = stream?._writableState; if ((w && w.destroyed) || (r && r.destroyed)) { return this; } if ((r && r.autoDestroy) || (w && w.autoDestroy)) stream.destroy(err); else if (err) { Error.captureStackTrace(err); if (w && !w.errored) { w.errored = err; } if (r && !r.errored) { r.errored = err; } if (sync) { runOnNextTick(emitErrorNT, stream, err); } else { emitErrorNT(stream, err); } } } function construct(stream, cb) { if (typeof stream._construct !== "function") { return; } const r = stream._readableState; const w = stream._writableState; if (r) { r.constructed = false; } if (w) { w.constructed = false; } stream.once(kConstruct, cb); if (stream.listenerCount(kConstruct) > 1) { return; } runOnNextTick(constructNT, stream); } function constructNT(stream) { let called = false; function onConstruct(err) { if (called) { errorOrDestroy( stream, err !== null && err !== void 0 ? err : new ERR_MULTIPLE_CALLBACK(), ); return; } called = true; const r = stream._readableState; const w = stream._writableState; const s = w || r; if (r) { r.constructed = true; } if (w) { w.constructed = true; } if (s.destroyed) { stream.emit(kDestroy, err); } else if (err) { errorOrDestroy(stream, err, true); } else { runOnNextTick(emitConstructNT, stream); } } try { stream._construct(onConstruct); } catch (err) { onConstruct(err); } } function emitConstructNT(stream) { stream.emit(kConstruct); } function isRequest(stream) { return stream && stream.setHeader && typeof stream.abort === "function"; } function emitCloseLegacy(stream) { stream.emit("close"); } function emitErrorCloseLegacy(stream, err) { stream.emit("error", err); runOnNextTick(emitCloseLegacy, stream); } function destroyer(stream, err) { if (!stream || isDestroyed(stream)) { return; } if (!err && !isFinished(stream)) { err = new AbortError(); } if (isServerRequest(stream)) { stream.socket = null; stream.destroy(err); } else if (isRequest(stream)) { stream.abort(); } else if (isRequest(stream.req)) { stream.req.abort(); } else if (typeof stream.destroy === "function") { stream.destroy(err); } else if (typeof stream.close === "function") { stream.close(); } else if (err) { runOnNextTick(emitErrorCloseLegacy, stream); } else { runOnNextTick(emitCloseLegacy, stream); } if (!stream.destroyed) { stream[kDestroyed] = true; } } module.exports = { construct, destroyer, destroy, undestroy, errorOrDestroy, }; }, }); // node_modules/readable-stream/lib/internal/streams/legacy.js var require_legacy = __commonJS({ "node_modules/readable-stream/lib/internal/streams/legacy.js"( exports, module, ) { "use strict"; var { ArrayIsArray, ObjectSetPrototypeOf } = require_primordials(); var { EventEmitter: _EE } = __require("events"); var EE; if (__TRACK_EE__) { EE = DebugEventEmitter; } else { EE = _EE; } function Stream(options) { if (!(this instanceof Stream)) return new Stream(options); EE.call(this, options); } ObjectSetPrototypeOf(Stream.prototype, EE.prototype); ObjectSetPrototypeOf(Stream, EE); Stream.prototype.pipe = function (dest, options) { const source = this; function ondata(chunk) { if (dest.writable && dest.write(chunk) === false && source.pause) { source.pause(); } } source.on("data", ondata); function ondrain() { if (source.readable && source.resume) { source.resume(); } } dest.on("drain", ondrain); if (!dest._isStdio && (!options || options.end !== false)) { source.on("end", onend); source.on("close", onclose); } let didOnEnd = false; function onend() { if (didOnEnd) return; didOnEnd = true; dest.end(); } function onclose() { if (didOnEnd) return; didOnEnd = true; if (typeof dest.destroy === "function") dest.destroy(); } function onerror(er) { cleanup(); if (EE.listenerCount(this, "error") === 0) { this.emit("error", er); } } prependListener(source, "error", onerror); prependListener(dest, "error", onerror); function cleanup() { source.removeListener("data", ondata); dest.removeListener("drain", ondrain); source.removeListener("end", onend); source.removeListener("close", onclose); source.removeListener("error", onerror); dest.removeListener("error", onerror); source.removeListener("end", cleanup); source.removeListener("close", cleanup); dest.removeListener("close", cleanup); } source.on("end", cleanup); source.on("close", cleanup); dest.on("close", cleanup); dest.emit("pipe", source); return dest; }; function prependListener(emitter, event, fn) { if (typeof emitter.prependListener === "function") return emitter.prependListener(event, fn); if (!emitter._events || !emitter._events[event]) emitter.on(event, fn); else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn); else emitter._events[event] = [fn, emitter._events[event]]; } module.exports = { Stream, prependListener, }; }, }); // node_modules/readable-stream/lib/internal/streams/add-abort-signal.js var require_add_abort_signal = __commonJS({ "node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"( exports, module, ) { "use strict"; var { AbortError, codes } = require_errors(); var eos = require_end_of_stream(); var { ERR_INVALID_ARG_TYPE } = codes; var validateAbortSignal = (signal, name) => { if (typeof signal !== "object" || !("aborted" in signal)) { throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal); } }; function isNodeStream(obj) { return !!(obj && typeof obj.pipe === "function"); } module.exports.addAbortSignal = function addAbortSignal(signal, stream) { validateAbortSignal(signal, "signal"); if (!isNodeStream(stream)) { throw new ERR_INVALID_ARG_TYPE("stream", "stream.Stream", stream); } return module.exports.addAbortSignalNoValidate(signal, stream); }; module.exports.addAbortSignalNoValidate = function (signal, stream) { if (typeof signal !== "object" || !("aborted" in signal)) { return stream; } const onAbort = () => { stream.destroy( new AbortError(void 0, { cause: signal.reason, }), ); }; if (signal.aborted) { onAbort(); } else { signal.addEventListener("abort", onAbort); eos(stream, () => signal.removeEventListener("abort", onAbort)); } return stream; }; }, }); // node_modules/readable-stream/lib/internal/streams/state.js var require_state = __commonJS({ "node_modules/readable-stream/lib/internal/streams/state.js"( exports, module, ) { "use strict"; var { MathFloor, NumberIsInteger } = require_primordials(); var { ERR_INVALID_ARG_VALUE } = require_errors().codes; function highWaterMarkFrom(options, isDuplex, duplexKey) { return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; } function getDefaultHighWaterMark(objectMode) { return objectMode ? 16 : 16 * 1024; } function getHighWaterMark(state, options, duplexKey, isDuplex) { const hwm = highWaterMarkFrom(options, isDuplex, duplexKey); if (hwm != null) { if (!NumberIsInteger(hwm) || hwm < 0) { const name = isDuplex ? `options.${duplexKey}` : "options.highWaterMark"; throw new ERR_INVALID_ARG_VALUE(name, hwm); } return MathFloor(hwm); } return getDefaultHighWaterMark(state.objectMode); } module.exports = { getHighWaterMark, getDefaultHighWaterMark, }; }, }); // node_modules/readable-stream/lib/internal/streams/from.js var require_from = __commonJS({ "node_modules/readable-stream/lib/internal/streams/from.js"(exports, module) { "use strict"; var { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require_primordials(); var { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require_errors().codes; function from(Readable, iterable, opts) { let iterator; if (typeof iterable === "string" || iterable instanceof Buffer) { return new Readable({ objectMode: true, ...opts, read() { this.push(iterable); this.push(null); }, }); } let isAsync; if (iterable && iterable[SymbolAsyncIterator]) { isAsync = true; iterator = iterable[SymbolAsyncIterator](); } else if (iterable && iterable[SymbolIterator]) { isAsync = false; iterator = iterable[SymbolIterator](); } else { throw new ERR_INVALID_ARG_TYPE("iterable", ["Iterable"], iterable); } const readable = new Readable({ objectMode: true, highWaterMark: 1, ...opts, }); let reading = false; readable._read = function () { if (!reading) { reading = true; next(); } }; readable._destroy = function (error, cb) { PromisePrototypeThen( close(error), () => runOnNextTick(cb, error), (e) => runOnNextTick(cb, e || error), ); }; async function close(error) { const hadError = error !== void 0 && error !== null; const hasThrow = typeof iterator.throw === "function"; if (hadError && hasThrow) { const { value, done } = await iterator.throw(error); await value; if (done) { return; } } if (typeof iterator.return === "function") { const { value } = await iterator.return(); await value; } } async function next() { for (;;) { try { const { value, done } = isAsync ? await iterator.next() : iterator.next(); if (done) { readable.push(null); } else { const res = value && typeof value.then === "function" ? await value : value; if (res === null) { reading = false; throw new ERR_STREAM_NULL_VALUES(); } else if (readable.push(res)) { continue; } else { reading = false; } } } catch (err) { readable.destroy(err); } break; } } return readable; } module.exports = from; }, }); // node_modules/readable-stream/lib/internal/streams/readable.js var require_readable = __commonJS({ "node_modules/readable-stream/lib/internal/streams/readable.js"( exports, module, ) { "use strict"; var { ArrayPrototypeIndexOf, NumberIsInteger, NumberIsNaN, NumberParseInt, ObjectDefineProperties, ObjectKeys, ObjectSetPrototypeOf, Promise: Promise2, SafeSet, SymbolAsyncIterator, Symbol: Symbol2, } = require_primordials(); var ReadableState = globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState; var { EventEmitter: EE } = __require("events"); var { Stream, prependListener } = require_legacy(); function Readable(options) { if (!(this instanceof Readable)) return new Readable(options); const isDuplex = this instanceof require_duplex(); this._readableState = new ReadableState(options, this, isDuplex); if (options) { const { read, destroy, construct, signal } = options; if (typeof read === "function") this._read = read; if (typeof destroy === "function") this._destroy = destroy; if (typeof construct === "function") this._construct = construct; if (signal && !isDuplex) addAbortSignal(signal, this); } Stream.call(this, options); destroyImpl.construct(this, () => { if (this._readableState.needReadable) { maybeReadMore(this, this._readableState); } }); } ObjectSetPrototypeOf(Readable.prototype, Stream.prototype); ObjectSetPrototypeOf(Readable, Stream); Readable.prototype.on = function (ev, fn) { const res = Stream.prototype.on.call(this, ev, fn); const state = this._readableState; if (ev === "data") { state.readableListening = this.listenerCount("readable") > 0; if (state.flowing !== false) { __DEBUG__ && debug("in flowing mode!", this.__id); this.resume(); } else { __DEBUG__ && debug("in readable mode!", this.__id); } } else if (ev === "readable") { __DEBUG__ && debug("readable listener added!", this.__id); if (!state.endEmitted && !state.readableListening) { state.readableListening = state.needReadable = true; state.flowing = false; state.emittedReadable = false; __DEBUG__ && debug( "on readable - state.length, reading, emittedReadable", state.length, state.reading, state.emittedReadable, this.__id, ); if (state.length) { emitReadable(this, state); } else if (!state.reading) { runOnNextTick(nReadingNextTick, this); } } else if (state.endEmitted) { __DEBUG__ && debug("end already emitted...", this.__id); } } return res; }; class ReadableFromWeb extends Readable { #reader; #closed; #pendingChunks; #stream; constructor(options, stream) { const { objectMode, highWaterMark, encoding, signal } = options; super({ objectMode, highWaterMark, encoding, signal, }); this.#pendingChunks = []; this.#reader = undefined; this.#stream = stream; this.#closed = false; } #drainPending() { var pendingChunks = this.#pendingChunks, pendingChunksI = 0, pendingChunksCount = pendingChunks.length; for (; pendingChunksI < pendingChunksCount; pendingChunksI++) { const chunk = pendingChunks[pendingChunksI]; pendingChunks[pendingChunksI] = undefined; if (!this.push(chunk, undefined)) { this.#pendingChunks = pendingChunks.slice(pendingChunksI + 1); return true; } } if (pendingChunksCount > 0) { this.#pendingChunks = []; } return false; } #handleDone(reader) { reader.releaseLock(); this.#reader = undefined; this.#closed = true; this.push(null); return; } async _read() { __DEBUG__ && debug("ReadableFromWeb _read()", this.__id); var stream = this.#stream, reader = this.#reader; if (stream) { reader = this.#reader = stream.getReader(); this.#stream = undefined; } else if (this.#drainPending()) { return; } var deferredError; try { do { var done = false, value; const firstResult = reader.readMany(); if (isPromise(firstResult)) { ({ done, value } = await firstResult); if (this.#closed) { this.#pendingChunks.push(...value); return; } } else { ({ done, value } = firstResult); } if (done) { this.#handleDone(reader); return; } if (!this.push(value[0])) { this.#pendingChunks = value.slice(1); return; } for (let i = 1, count = value.length; i < count; i++) { if (!this.push(value[i])) { this.#pendingChunks = value.slice(i + 1); return; } } } while (!this.#closed); } catch (e) { deferredError = e; } finally { if (deferredError) throw deferredError; } } _destroy(error, callback) { if (!this.#closed) { var reader = this.#reader; if (reader) { this.#reader = undefined; reader.cancel(error).finally(() => { this.#closed = true; callback(error); }); } return; } try { callback(error); } catch (error) { globalThis.reportError(error); } } } /** * @param {ReadableStream} readableStream * @param {{ * highWaterMark? : number, * encoding? : string, * objectMode? : boolean, * signal? : AbortSignal, * }} [options] * @returns {Readable} */ function newStreamReadableFromReadableStream(readableStream, options = {}) { if (!isReadableStream(readableStream)) { throw new ERR_INVALID_ARG_TYPE( "readableStream", "ReadableStream", readableStream, ); } validateObject(options, "options"); const { highWaterMark, encoding, objectMode = false, signal, // native = true, } = options; if (encoding !== undefined && !Buffer.isEncoding(encoding)) throw new ERR_INVALID_ARG_VALUE(encoding, "options.encoding"); validateBoolean(objectMode, "options.objectMode"); // validateBoolean(native, "options.native"); // if (!native) { // return new ReadableFromWeb( // { // highWaterMark, // encoding, // objectMode, // signal, // }, // readableStream, // ); // } const nativeStream = getNativeReadableStream( Readable, readableStream, options, ); return ( nativeStream || new ReadableFromWeb( { highWaterMark, encoding, objectMode, signal, }, readableStream, ) ); } module.exports = Readable; var { addAbortSignal } = require_add_abort_signal(); var eos = require_end_of_stream(); const { maybeReadMore: _maybeReadMore, resume, emitReadable: _emitReadable, onEofChunk, } = globalThis[Symbol.for("Bun.lazy")]("bun:stream"); function maybeReadMore(stream, state) { process.nextTick(_maybeReadMore, stream, state); } // REVERT ME function emitReadable(stream, state) { __DEBUG__ && debug("NativeReadable - emitReadable", stream.__id); _emitReadable(stream, state); } var destroyImpl = require_destroy(); var { aggregateTwoErrors, codes: { ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED, ERR_OUT_OF_RANGE, ERR_STREAM_PUSH_AFTER_EOF, ERR_STREAM_UNSHIFT_AFTER_END_EVENT, }, } = require_errors(); var { validateObject } = require_validators(); var { StringDecoder } = __require("string_decoder"); var from = require_from(); var nop = () => {}; var { errorOrDestroy } = destroyImpl; Readable.prototype.destroy = destroyImpl.destroy; Readable.prototype._undestroy = destroyImpl.undestroy; Readable.prototype._destroy = function (err, cb) { cb(err); }; Readable.prototype[EE.captureRejectionSymbol] = function (err) { this.destroy(err); }; Readable.prototype.push = function (chunk, encoding) { return readableAddChunk(this, chunk, encoding, false); }; Readable.prototype.unshift = function (chunk, encoding) { return readableAddChunk(this, chunk, encoding, true); }; function readableAddChunk(stream, chunk, encoding, addToFront) { __DEBUG__ && debug("readableAddChunk", chunk, stream.__id); const state = stream._readableState; let err; if (!state.objectMode) { if (typeof chunk === "string") { encoding = encoding || state.defaultEncoding; if (state.encoding !== encoding) { if (addToFront && state.encoding) { chunk = Buffer.from(chunk, encoding).toString(state.encoding); } else { chunk = Buffer.from(chunk, encoding); encoding = ""; } } } else if (chunk instanceof Buffer) { encoding = ""; } else if (Stream._isUint8Array(chunk)) { if (addToFront || !state.decoder) { chunk = Stream._uint8ArrayToBuffer(chunk); } encoding = ""; } else if (chunk != null) { err = new ERR_INVALID_ARG_TYPE( "chunk", ["string", "Buffer", "Uint8Array"], chunk, ); } } if (err) { errorOrDestroy(stream, err); } else if (chunk === null) { state.reading = false; onEofChunk(stream, state); } else if (state.objectMode || (chunk && chunk.length > 0)) { if (addToFront) { if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); else if (state.destroyed || state.errored) return false; else addChunk(stream, state, chunk, true); } else if (state.ended) { errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); } else if (state.destroyed || state.errored) { return false; } else { state.reading = false; if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false); else maybeReadMore(stream, state); } else { addChunk(stream, state, chunk, false); } } } else if (!addToFront) { state.reading = false; maybeReadMore(stream, state); } return ( !state.ended && (state.length < state.highWaterMark || state.length === 0) ); } function addChunk(stream, state, chunk, addToFront) { __DEBUG__ && debug("adding chunk", stream.__id); __DEBUG__ && debug("chunk", chunk.toString(), stream.__id); if ( state.flowing && state.length === 0 && !state.sync && stream.listenerCount("data") > 0 ) { if (state.multiAwaitDrain) { state.awaitDrainWriters.clear(); } else { state.awaitDrainWriters = null; } state.dataEmitted = true; stream.emit("data", chunk); } else { state.length += state.objectMode ? 1 : chunk.length; if (addToFront) state.buffer.unshift(chunk); else state.buffer.push(chunk); __DEBUG__ && debug("needReadable @ addChunk", state.needReadable, stream.__id); if (state.needReadable) emitReadable(stream, state); } maybeReadMore(stream, state); } Readable.prototype.isPaused = function () { const state = this._readableState; return state.paused === true || state.flowing === false; }; Readable.prototype.setEncoding = function (enc) { const decoder = new StringDecoder(enc); this._readableState.decoder = decoder; this._readableState.encoding = this._readableState.decoder.encoding; const buffer = this._readableState.buffer; let content = ""; // BufferList does not support iterator now, and iterator is slow in JSC. // for (const data of buffer) { // content += decoder.write(data); // } // buffer.clear(); for (let i = buffer.length; i > 0; i--) { content += decoder.write(buffer.shift()); } if (content !== "") buffer.push(content); this._readableState.length = content.length; return this; }; var MAX_HWM = 1073741824; function computeNewHighWaterMark(n) { if (n > MAX_HWM) { throw new ERR_OUT_OF_RANGE("size", "<= 1GiB", n); } else { n--; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; n++; } return n; } function howMuchToRead(n, state) { if (n <= 0 || (state.length === 0 && state.ended)) return 0; if (state.objectMode) return 1; if (NumberIsNaN(n)) { if (state.flowing && state.length) return state.buffer.first().length; return state.length; } if (n <= state.length) return n; return state.ended ? state.length : 0; } // You can override either this method, or the async _read(n) below. Readable.prototype.read = function (n) { __DEBUG__ && debug("read - n =", n, this.__id); if (!NumberIsInteger(n)) { n = NumberParseInt(n, 10); } const state = this._readableState; const nOrig = n; // If we're asking for more than the current hwm, then raise the hwm. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); if (n !== 0) state.emittedReadable = false; // If we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. if ( n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended) ) { __DEBUG__ && debug( "read: emitReadable or endReadable", state.length, state.ended, this.__id, ); if (state.length === 0 && state.ended) endReadable(this); else emitReadable(this, state); return null; } n = howMuchToRead(n, state); // If we've ended, and we're now clear, then finish it up. if (n === 0 && state.ended) { __DEBUG__ && debug( "read: calling endReadable if length 0 -- length, state.ended", state.length, state.ended, this.__id, ); if (state.length === 0) endReadable(this); return null; } // All the actual chunk generation logic needs to be // *below* the call to _read. The reason is that in certain // synthetic stream cases, such as passthrough streams, _read // may be a completely synchronous operation which may change // the state of the read buffer, providing enough data when // before there was *not* enough. // // So, the steps are: // 1. Figure out what the state of things will be after we do // a read from the buffer. // // 2. If that resulting state will trigger a _read, then call _read. // Note that this may be asynchronous, or synchronous. Yes, it is // deeply ugly to write APIs this way, but that still doesn't mean // that the Readable class should behave improperly, as streams are // designed to be sync/async agnostic. // Take note if the _read call is sync or async (ie, if the read call // has returned yet), so that we know whether or not it's safe to emit // 'readable' etc. // // 3. Actually pull the requested chunks out of the buffer and return. // if we need a readable event, then we need to do some reading. let doRead = state.needReadable; __DEBUG__ && debug("need readable", doRead, this.__id); // If we currently have less than the highWaterMark, then also read some. if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; __DEBUG__ && debug("length less than watermark", doRead, this.__id); } // However, if we've ended, then there's no point, if we're already // reading, then it's unnecessary, if we're constructing we have to wait, // and if we're destroyed or errored, then it's not allowed, if ( state.ended || state.reading || state.destroyed || state.errored || !state.constructed ) { __DEBUG__ && debug("state.constructed?", state.constructed, this.__id); doRead = false; __DEBUG__ && debug("reading, ended or constructing", doRead, this.__id); } else if (doRead) { __DEBUG__ && debug("do read", this.__id); state.reading = true; state.sync = true; // If the length is currently zero, then we *need* a readable event. if (state.length === 0) state.needReadable = true; // Call internal read method try { var result = this._read(state.highWaterMark); if (isPromise(result)) { __DEBUG__ && debug("async _read", this.__id); const peeked = Bun.peek(result); __DEBUG__ && debug("peeked promise", peeked, this.__id); if (peeked !== result) { result = peeked; } } if (isPromise(result) && result?.then && isCallable(result.then)) { __DEBUG__ && debug("async _read result.then setup", this.__id); result.then(nop, function (err) { errorOrDestroy(this, err); }); } } catch (err) { errorOrDestroy(this, err); } state.sync = false; // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. if (!state.reading) n = howMuchToRead(nOrig, state); } __DEBUG__ && debug("n @ fromList", n, this.__id); let ret; if (n > 0) ret = fromList(n, state); else ret = null; __DEBUG__ && debug("ret @ read", ret, this.__id); if (ret === null) { state.needReadable = state.length <= state.highWaterMark; __DEBUG__ && debug("state.length while ret = null", state.length, this.__id); n = 0; } else { state.length -= n; if (state.multiAwaitDrain) { state.awaitDrainWriters.clear(); } else { state.awaitDrainWriters = null; } } if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. if (nOrig !== n && state.ended) endReadable(this); } if (ret !== null && !state.errorEmitted && !state.closeEmitted) { state.dataEmitted = true; this.emit("data", ret); } return ret; }; Readable.prototype._read = function (n) { throw new ERR_METHOD_NOT_IMPLEMENTED("_read()"); }; Readable.prototype.pipe = function (dest, pipeOpts) { const src = this; const state = this._readableState; if (state.pipes.length === 1) { if (!state.multiAwaitDrain) { state.multiAwaitDrain = true; state.awaitDrainWriters = new SafeSet( state.awaitDrainWriters ? [state.awaitDrainWriters] : [], ); } } state.pipes.push(dest); __DEBUG__ && debug("pipe count=%d opts=%j", state.pipes.length, pipeOpts, src.__id); const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; const endFn = doEnd ? onend : unpipe; if (state.endEmitted) runOnNextTick(endFn); else src.once("end", endFn); dest.on("unpipe", onunpipe); function onunpipe(readable, unpipeInfo) { __DEBUG__ && debug("onunpipe", src.__id); if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; cleanup(); } } } function onend() { __DEBUG__ && debug("onend", src.__id); dest.end(); } let ondrain; let cleanedUp = false; function cleanup() { __DEBUG__ && debug("cleanup", src.__id); dest.removeListener("close", onclose); dest.removeListener("finish", onfinish); if (ondrain) { dest.removeListener("drain", ondrain); } dest.removeListener("error", onerror); dest.removeListener("unpipe", onunpipe); src.removeListener("end", onend); src.removeListener("end", unpipe); src.removeListener("data", ondata); cleanedUp = true; if ( ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain) ) ondrain(); } function pause() { if (!cleanedUp) { if (state.pipes.length === 1 && state.pipes[0] === dest) { __DEBUG__ && debug("false write response, pause", 0, src.__id); state.awaitDrainWriters = dest; state.multiAwaitDrain = false; } else if (state.pipes.length > 1 && state.pipes.includes(dest)) { __DEBUG__ && debug( "false write response, pause", state.awaitDrainWriters.size, src.__id, ); state.awaitDrainWriters.add(dest); } src.pause(); } if (!ondrain) { ondrain = pipeOnDrain(src, dest); dest.on("drain", ondrain); } } src.on("data", ondata); function ondata(chunk) { __DEBUG__ && debug("ondata", src.__id); const ret = dest.write(chunk); __DEBUG__ && debug("dest.write", ret, src.__id); if (ret === false) { pause(); } } function onerror(er) { debug("onerror", er); unpipe(); dest.removeListener("error", onerror); if (dest.listenerCount("error") === 0) { const s = dest._writableState || dest._readableState; if (s && !s.errorEmitted) { errorOrDestroy(dest, er); } else { dest.emit("error", er); } } } prependListener(dest, "error", onerror); function onclose() { dest.removeListener("finish", onfinish); unpipe(); } dest.once("close", onclose); function onfinish() { debug("onfinish"); dest.removeListener("close", onclose); unpipe(); } dest.once("finish", onfinish); function unpipe() { debug("unpipe"); src.unpipe(dest); } dest.emit("pipe", src); if (dest.writableNeedDrain === true) { if (state.flowing) { pause(); } } else if (!state.flowing) { debug("pipe resume"); src.resume(); } return dest; }; function pipeOnDrain(src, dest) { return function pipeOnDrainFunctionResult() { const state = src._readableState; if (state.awaitDrainWriters === dest) { debug("pipeOnDrain", 1); state.awaitDrainWriters = null; } else if (state.multiAwaitDrain) { debug("pipeOnDrain", state.awaitDrainWriters.size); state.awaitDrainWriters.delete(dest); } if ( (!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount("data") ) { src.resume(); } }; } Readable.prototype.unpipe = function (dest) { const state = this._readableState; const unpipeInfo = { hasUnpiped: false, }; if (state.pipes.length === 0) return this; if (!dest) { const dests = state.pipes; state.pipes = []; this.pause(); for (let i = 0; i < dests.length; i++) dests[i].emit("unpipe", this, { hasUnpiped: false, }); return this; } const index = ArrayPrototypeIndexOf(state.pipes, dest); if (index === -1) return this; state.pipes.splice(index, 1); if (state.pipes.length === 0) this.pause(); dest.emit("unpipe", this, unpipeInfo); return this; }; Readable.prototype.addListener = Readable.prototype.on; Readable.prototype.removeListener = function (ev, fn) { const res = Stream.prototype.removeListener.call(this, ev, fn); if (ev === "readable") { runOnNextTick(updateReadableListening, this); } return res; }; Readable.prototype.off = Readable.prototype.removeListener; Readable.prototype.removeAllListeners = function (ev) { const res = Stream.prototype.removeAllListeners.apply(this, arguments); if (ev === "readable" || ev === void 0) { runOnNextTick(updateReadableListening, this); } return res; }; function updateReadableListening(self) { const state = self._readableState; state.readableListening = self.listenerCount("readable") > 0; if (state.resumeScheduled && state.paused === false) { state.flowing = true; } else if (self.listenerCount("data") > 0) { self.resume(); } else if (!state.readableListening) { state.flowing = null; } } function nReadingNextTick(self) { __DEBUG__ && debug("on readable nextTick, calling read(0)", self.__id); self.read(0); } Readable.prototype.resume = function () { const state = this._readableState; if (!state.flowing) { __DEBUG__ && debug("resume", this.__id); state.flowing = !state.readableListening; resume(this, state); } state.paused = false; return this; }; Readable.prototype.pause = function () { __DEBUG__ && debug("call pause flowing=%j", this._readableState.flowing, this.__id); if (this._readableState.flowing !== false) { __DEBUG__ && debug("pause", this.__id); this._readableState.flowing = false; this.emit("pause"); } this._readableState.paused = true; return this; }; Readable.prototype.wrap = function (stream) { let paused = false; stream.on("data", (chunk) => { if (!this.push(chunk) && stream.pause) { paused = true; stream.pause(); } }); stream.on("end", () => { this.push(null); }); stream.on("error", (err) => { errorOrDestroy(this, err); }); stream.on("close", () => { this.destroy(); }); stream.on("destroy", () => { this.destroy(); }); this._read = () => { if (paused && stream.resume) { paused = false; stream.resume(); } }; const streamKeys = ObjectKeys(stream); for (let j = 1; j < streamKeys.length; j++) { const i = streamKeys[j]; if (this[i] === void 0 && typeof stream[i] === "function") { this[i] = stream[i].bind(stream); } } return this; }; Readable.prototype[SymbolAsyncIterator] = function () { return streamToAsyncIterator(this); }; Readable.prototype.iterator = function (options) { if (options !== void 0) { validateObject(options, "options"); } return streamToAsyncIterator(this, options); }; function streamToAsyncIterator(stream, options) { if (typeof stream.read !== "function") { stream = Readable.wrap(stream, { objectMode: true, }); } const iter = createAsyncIterator(stream, options); iter.stream = stream; return iter; } async function* createAsyncIterator(stream, options) { let callback = nop; function next(resolve) { if (this === stream) { callback(); callback = nop; } else { callback = resolve; } } stream.on("readable", next); let error; const cleanup = eos( stream, { writable: false, }, (err) => { error = err ? aggregateTwoErrors(error, err) : null; callback(); callback = nop; }, ); try { while (true) { const chunk = stream.destroyed ? null : stream.read(); if (chunk !== null) { yield chunk; } else if (error) { throw error; } else if (error === null) { return; } else { await new Promise2(next); } } } catch (err) { error = aggregateTwoErrors(error, err); throw error; } finally { if ( (error || (options === null || options === void 0 ? void 0 : options.destroyOnReturn) !== false) && (error === void 0 || stream._readableState.autoDestroy) ) { destroyImpl.destroyer(stream, null); } else { stream.off("readable", next); cleanup(); } } } ObjectDefineProperties(Readable.prototype, { readable: { get() { const r = this._readableState; return ( !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted ); }, set(val) { if (this._readableState) { this._readableState.readable = !!val; } }, }, readableDidRead: { enumerable: false, get: function () { return this._readableState.dataEmitted; }, }, readableAborted: { enumerable: false, get: function () { return !!( this._readableState.readable !== false && (this._readableState.destroyed || this._readableState.errored) && !this._readableState.endEmitted ); }, }, readableHighWaterMark: { enumerable: false, get: function () { return this._readableState.highWaterMark; }, }, readableBuffer: { enumerable: false, get: function () { return this._readableState && this._readableState.buffer; }, }, readableFlowing: { enumerable: false, get: function () { return this._readableState.flowing; }, set: function (state) { if (this._readableState) { this._readableState.flowing = state; } }, }, readableLength: { enumerable: false, get() { return this._readableState.length; }, }, readableObjectMode: { enumerable: false, get() { return this._readableState ? this._readableState.objectMode : false; }, }, readableEncoding: { enumerable: false, get() { return this._readableState ? this._readableState.encoding : null; }, }, errored: { enumerable: false, get() { return this._readableState ? this._readableState.errored : null; }, }, closed: { get() { return this._readableState ? this._readableState.closed : false; }, }, destroyed: { enumerable: false, get() { return this._readableState ? this._readableState.destroyed : false; }, set(value) { if (!this._readableState) { return; } this._readableState.destroyed = value; }, }, readableEnded: { enumerable: false, get() { return this._readableState ? this._readableState.endEmitted : false; }, }, }); Readable._fromList = fromList; function fromList(n, state) { if (state.length === 0) return null; let ret; if (state.objectMode) ret = state.buffer.shift(); else if (!n || n >= state.length) { if (state.decoder) ret = state.buffer.join(""); else if (state.buffer.length === 1) ret = state.buffer.first(); else ret = state.buffer.concat(state.length); state.buffer.clear(); } else { ret = state.buffer.consume(n, state.decoder); } return ret; } function endReadable(stream) { const state = stream._readableState; __DEBUG__ && debug("endEmitted @ endReadable", state.endEmitted, stream.__id); if (!state.endEmitted) { state.ended = true; runOnNextTick(endReadableNT, state, stream); } } function endReadableNT(state, stream) { __DEBUG__ && debug( "endReadableNT -- endEmitted, state.length", state.endEmitted, state.length, stream.__id, ); if ( !state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0 ) { state.endEmitted = true; stream.emit("end"); __DEBUG__ && debug("end emitted @ endReadableNT", stream.__id); if (stream.writable && stream.allowHalfOpen === false) { runOnNextTick(endWritableNT, stream); } else if (state.autoDestroy) { const wState = stream._writableState; const autoDestroy = !wState || (wState.autoDestroy && (wState.finished || wState.writable === false)); if (autoDestroy) { stream.destroy(); } } } } function endWritableNT(stream) { const writable = stream.writable && !stream.writableEnded && !stream.destroyed; if (writable) { stream.end(); } } Readable.from = function (iterable, opts) { return from(Readable, iterable, opts); }; var webStreamsAdapters = { newStreamReadableFromReadableStream, }; function lazyWebStreams() { if (webStreamsAdapters === void 0) webStreamsAdapters = {}; return webStreamsAdapters; } Readable.fromWeb = function (readableStream, options) { return lazyWebStreams().newStreamReadableFromReadableStream( readableStream, options, ); }; Readable.toWeb = function (streamReadable) { return lazyWebStreams().newReadableStreamFromStreamReadable( streamReadable, ); }; Readable.wrap = function (src, options) { var _ref, _src$readableObjectMo; return new Readable({ objectMode: (_ref = (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== void 0 ? _src$readableObjectMo : src.objectMode) !== null && _ref !== void 0 ? _ref : true, ...options, destroy(err, callback) { destroyImpl.destroyer(src, err); callback(err); }, }).wrap(src); }; }, }); // node_modules/readable-stream/lib/internal/streams/writable.js var require_writable = __commonJS({ "node_modules/readable-stream/lib/internal/streams/writable.js"( exports, module, ) { "use strict"; var { ArrayPrototypeSlice, Error: Error2, FunctionPrototypeSymbolHasInstance, ObjectDefineProperty, ObjectDefineProperties, ObjectSetPrototypeOf, StringPrototypeToLowerCase, Symbol: Symbol2, SymbolHasInstance, } = require_primordials(); var { EventEmitter: EE } = __require("events"); var Stream = require_legacy().Stream; var destroyImpl = require_destroy(); var { addAbortSignal } = require_add_abort_signal(); var { getHighWaterMark, getDefaultHighWaterMark } = require_state(); var { ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK, ERR_STREAM_CANNOT_PIPE, ERR_STREAM_DESTROYED, ERR_STREAM_ALREADY_FINISHED, ERR_STREAM_NULL_VALUES, ERR_STREAM_WRITE_AFTER_END, ERR_UNKNOWN_ENCODING, } = require_errors().codes; var { errorOrDestroy } = destroyImpl; function Writable(options = {}) { const isDuplex = this instanceof require_duplex(); if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options); this._writableState = new WritableState(options, this, isDuplex); if (options) { if (typeof options.write === "function") this._write = options.write; if (typeof options.writev === "function") this._writev = options.writev; if (typeof options.destroy === "function") this._destroy = options.destroy; if (typeof options.final === "function") this._final = options.final; if (typeof options.construct === "function") this._construct = options.construct; if (options.signal) addAbortSignal(options.signal, this); } Stream.call(this, options); destroyImpl.construct(this, () => { const state = this._writableState; if (!state.writing) { clearBuffer(this, state); } finishMaybe(this, state); }); } ObjectSetPrototypeOf(Writable.prototype, Stream.prototype); ObjectSetPrototypeOf(Writable, Stream); module.exports = Writable; function nop() {} var kOnFinished = Symbol2("kOnFinished"); function WritableState(options, stream, isDuplex) { if (typeof isDuplex !== "boolean") isDuplex = stream instanceof require_duplex(); this.objectMode = !!(options && options.objectMode); if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode); this.highWaterMark = options ? getHighWaterMark(this, options, "writableHighWaterMark", isDuplex) : getDefaultHighWaterMark(false); this.finalCalled = false; this.needDrain = false; this.ending = false; this.ended = false; this.finished = false; this.destroyed = false; const noDecode = !!(options && options.decodeStrings === false); this.decodeStrings = !noDecode; this.defaultEncoding = (options && options.defaultEncoding) || "utf8"; this.length = 0; this.writing = false; this.corked = 0; this.sync = true; this.bufferProcessing = false; this.onwrite = onwrite.bind(void 0, stream); this.writecb = null; this.writelen = 0; this.afterWriteTickInfo = null; resetBuffer(this); this.pendingcb = 0; this.constructed = true; this.prefinished = false; this.errorEmitted = false; this.emitClose = !options || options.emitClose !== false; this.autoDestroy = !options || options.autoDestroy !== false; this.errored = null; this.closed = false; this.closeEmitted = false; this[kOnFinished] = []; } function resetBuffer(state) { state.buffered = []; state.bufferedIndex = 0; state.allBuffers = true; state.allNoop = true; } WritableState.prototype.getBuffer = function getBuffer() { return ArrayPrototypeSlice(this.buffered, this.bufferedIndex); }; ObjectDefineProperty(WritableState.prototype, "bufferedRequestCount", { get() { return this.buffered.length - this.bufferedIndex; }, }); ObjectDefineProperty(Writable, SymbolHasInstance, { value: function (object) { if (FunctionPrototypeSymbolHasInstance(this, object)) return true; if (this !== Writable) return false; return object && object._writableState instanceof WritableState; }, }); Writable.prototype.pipe = function () { errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); }; function _write(stream, chunk, encoding, cb) { const state = stream._writableState; if (typeof encoding === "function") { cb = encoding; encoding = state.defaultEncoding; } else { if (!encoding) encoding = state.defaultEncoding; else if (encoding !== "buffer" && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding); if (typeof cb !== "function") cb = nop; } if (chunk === null) { throw new ERR_STREAM_NULL_VALUES(); } else if (!state.objectMode) { if (typeof chunk === "string") { if (state.decodeStrings !== false) { chunk = Buffer.from(chunk, encoding); encoding = "buffer"; } } else if (chunk instanceof Buffer) { encoding = "buffer"; } else if (Stream._isUint8Array(chunk)) { chunk = Stream._uint8ArrayToBuffer(chunk); encoding = "buffer"; } else { throw new ERR_INVALID_ARG_TYPE( "chunk", ["string", "Buffer", "Uint8Array"], chunk, ); } } let err; if (state.ending) { err = new ERR_STREAM_WRITE_AFTER_END(); } else if (state.destroyed) { err = new ERR_STREAM_DESTROYED("write"); } if (err) { runOnNextTick(cb, err); errorOrDestroy(stream, err, true); return err; } state.pendingcb++; return writeOrBuffer(stream, state, chunk, encoding, cb); } Writable.prototype.write = function (chunk, encoding, cb) { return _write(this, chunk, encoding, cb) === true; }; Writable.prototype.cork = function () { this._writableState.corked++; }; Writable.prototype.uncork = function () { const state = this._writableState; if (state.corked) { state.corked--; if (!state.writing) clearBuffer(this, state); } }; Writable.prototype.setDefaultEncoding = function setDefaultEncoding( encoding, ) { if (typeof encoding === "string") encoding = StringPrototypeToLowerCase(encoding); if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding); this._writableState.defaultEncoding = encoding; return this; }; function writeOrBuffer(stream, state, chunk, encoding, callback) { const len = state.objectMode ? 1 : chunk.length; state.length += len; const ret = state.length < state.highWaterMark; if (!ret) state.needDrain = true; if ( state.writing || state.corked || state.errored || !state.constructed ) { state.buffered.push({ chunk, encoding, callback, }); if (state.allBuffers && encoding !== "buffer") { state.allBuffers = false; } if (state.allNoop && callback !== nop) { state.allNoop = false; } } else { state.writelen = len; state.writecb = callback; state.writing = true; state.sync = true; stream._write(chunk, encoding, state.onwrite); state.sync = false; } return ret && !state.errored && !state.destroyed; } function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; state.writecb = cb; state.writing = true; state.sync = true; if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED("write")); else if (writev) stream._writev(chunk, state.onwrite); else stream._write(chunk, encoding, state.onwrite); state.sync = false; } function onwriteError(stream, state, er, cb) { --state.pendingcb; cb(er); errorBuffer(state); errorOrDestroy(stream, er); } function onwrite(stream, er) { const state = stream._writableState; const sync = state.sync; const cb = state.writecb; if (typeof cb !== "function") { errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK()); return; } state.writing = false; state.writecb = null; state.length -= state.writelen; state.writelen = 0; if (er) { Error.captureStackTrace(er); if (!state.errored) { state.errored = er; } if (stream._readableState && !stream._readableState.errored) { stream._readableState.errored = er; } if (sync) { runOnNextTick(onwriteError, stream, state, er, cb); } else { onwriteError(stream, state, er, cb); } } else { if (state.buffered.length > state.bufferedIndex) { clearBuffer(stream, state); } if (sync) { if ( state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb ) { state.afterWriteTickInfo.count++; } else { state.afterWriteTickInfo = { count: 1, cb, stream, state, }; runOnNextTick(afterWriteTick, state.afterWriteTickInfo); } } else { afterWrite(stream, state, 1, cb); } } } function afterWriteTick({ stream, state, count, cb }) { state.afterWriteTickInfo = null; return afterWrite(stream, state, count, cb); } function afterWrite(stream, state, count, cb) { const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain; if (needDrain) { state.needDrain = false; stream.emit("drain"); } while (count-- > 0) { state.pendingcb--; cb(); } if (state.destroyed) { errorBuffer(state); } finishMaybe(stream, state); } function errorBuffer(state) { if (state.writing) { return; } for (let n = state.bufferedIndex; n < state.buffered.length; ++n) { var _state$errored; const { chunk, callback } = state.buffered[n]; const len = state.objectMode ? 1 : chunk.length; state.length -= len; callback( (_state$errored = state.errored) !== null && _state$errored !== void 0 ? _state$errored : new ERR_STREAM_DESTROYED("write"), ); } const onfinishCallbacks = state[kOnFinished].splice(0); for (let i = 0; i < onfinishCallbacks.length; i++) { var _state$errored2; onfinishCallbacks[i]( (_state$errored2 = state.errored) !== null && _state$errored2 !== void 0 ? _state$errored2 : new ERR_STREAM_DESTROYED("end"), ); } resetBuffer(state); } function clearBuffer(stream, state) { if ( state.corked || state.bufferProcessing || state.destroyed || !state.constructed ) { return; } const { buffered, bufferedIndex, objectMode } = state; const bufferedLength = buffered.length - bufferedIndex; if (!bufferedLength) { return; } let i = bufferedIndex; state.bufferProcessing = true; if (bufferedLength > 1 && stream._writev) { state.pendingcb -= bufferedLength - 1; const callback = state.allNoop ? nop : (err) => { for (let n = i; n < buffered.length; ++n) { buffered[n].callback(err); } }; const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i); chunks.allBuffers = state.allBuffers; doWrite(stream, state, true, state.length, chunks, "", callback); resetBuffer(state); } else { do { const { chunk, encoding, callback } = buffered[i]; buffered[i++] = null; const len = objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, callback); } while (i < buffered.length && !state.writing); if (i === buffered.length) { resetBuffer(state); } else if (i > 256) { buffered.splice(0, i); state.bufferedIndex = 0; } else { state.bufferedIndex = i; } } state.bufferProcessing = false; } Writable.prototype._write = function (chunk, encoding, cb) { if (this._writev) { this._writev( [ { chunk, encoding, }, ], cb, ); } else { throw new ERR_METHOD_NOT_IMPLEMENTED("_write()"); } }; Writable.prototype._writev = null; Writable.prototype.end = function (chunk, encoding, cb, native = false) { const state = this._writableState; __DEBUG__ && debug("end", state, this.__id); if (typeof chunk === "function") { cb = chunk; chunk = null; encoding = null; } else if (typeof encoding === "function") { cb = encoding; encoding = null; } let err; if (chunk !== null && chunk !== void 0) { let ret; if (!native) { ret = _write(this, chunk, encoding); } else { ret = this.write(chunk, encoding); } if (ret instanceof Error2) { err = ret; } } if (state.corked) { state.corked = 1; this.uncork(); } if (err) { this.emit("error", err); } else if (!state.errored && !state.ending) { state.ending = true; finishMaybe(this, state, true); state.ended = true; } else if (state.finished) { err = new ERR_STREAM_ALREADY_FINISHED("end"); } else if (state.destroyed) { err = new ERR_STREAM_DESTROYED("end"); } if (typeof cb === "function") { if (err || state.finished) { runOnNextTick(cb, err); } else { state[kOnFinished].push(cb); } } return this; }; function needFinish(state, tag) { var needFinish = state.ending && !state.destroyed && state.constructed && state.length === 0 && !state.errored && state.buffered.length === 0 && !state.finished && !state.writing && !state.errorEmitted && !state.closeEmitted; debug("needFinish", needFinish, tag); return needFinish; } function callFinal(stream, state) { let called = false; function onFinish(err) { if (called) { errorOrDestroy( stream, err !== null && err !== void 0 ? err : ERR_MULTIPLE_CALLBACK(), ); return; } called = true; state.pendingcb--; if (err) { const onfinishCallbacks = state[kOnFinished].splice(0); for (let i = 0; i < onfinishCallbacks.length; i++) { onfinishCallbacks[i](err); } errorOrDestroy(stream, err, state.sync); } else if (needFinish(state)) { state.prefinished = true; stream.emit("prefinish"); state.pendingcb++; runOnNextTick(finish, stream, state); } } state.sync = true; state.pendingcb++; try { stream._final(onFinish); } catch (err) { onFinish(err); } state.sync = false; } function prefinish(stream, state) { if (!state.prefinished && !state.finalCalled) { if (typeof stream._final === "function" && !state.destroyed) { state.finalCalled = true; callFinal(stream, state); } else { state.prefinished = true; stream.emit("prefinish"); } } } function finishMaybe(stream, state, sync) { __DEBUG__ && debug("finishMaybe -- state, sync", state, sync, stream.__id); if (!needFinish(state, stream.__id)) return; prefinish(stream, state); if (state.pendingcb === 0) { if (sync) { state.pendingcb++; runOnNextTick( (stream2, state2) => { if (needFinish(state2)) { finish(stream2, state2); } else { state2.pendingcb--; } }, stream, state, ); } else if (needFinish(state)) { state.pendingcb++; finish(stream, state); } } } function finish(stream, state) { state.pendingcb--; state.finished = true; const onfinishCallbacks = state[kOnFinished].splice(0); for (let i = 0; i < onfinishCallbacks.length; i++) { onfinishCallbacks[i](); } stream.emit("finish"); if (state.autoDestroy) { const rState = stream._readableState; const autoDestroy = !rState || (rState.autoDestroy && (rState.endEmitted || rState.readable === false)); if (autoDestroy) { stream.destroy(); } } } ObjectDefineProperties(Writable.prototype, { closed: { get() { return this._writableState ? this._writableState.closed : false; }, }, destroyed: { get() { return this._writableState ? this._writableState.destroyed : false; }, set(value) { if (this._writableState) { this._writableState.destroyed = value; } }, }, writable: { get() { const w = this._writableState; return ( !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended ); }, set(val) { if (this._writableState) { this._writableState.writable = !!val; } }, }, writableFinished: { get() { return this._writableState ? this._writableState.finished : false; }, }, writableObjectMode: { get() { return this._writableState ? this._writableState.objectMode : false; }, }, writableBuffer: { get() { return this._writableState && this._writableState.getBuffer(); }, }, writableEnded: { get() { return this._writableState ? this._writableState.ending : false; }, }, writableNeedDrain: { get() { const wState = this._writableState; if (!wState) return false; return !wState.destroyed && !wState.ending && wState.needDrain; }, }, writableHighWaterMark: { get() { return this._writableState && this._writableState.highWaterMark; }, }, writableCorked: { get() { return this._writableState ? this._writableState.corked : 0; }, }, writableLength: { get() { return this._writableState && this._writableState.length; }, }, errored: { enumerable: false, get() { return this._writableState ? this._writableState.errored : null; }, }, writableAborted: { enumerable: false, get: function () { return !!( this._writableState.writable !== false && (this._writableState.destroyed || this._writableState.errored) && !this._writableState.finished ); }, }, }); var destroy = destroyImpl.destroy; Writable.prototype.destroy = function (err, cb) { const state = this._writableState; if ( !state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length) ) { runOnNextTick(errorBuffer, state); } destroy.call(this, err, cb); return this; }; Writable.prototype._undestroy = destroyImpl.undestroy; Writable.prototype._destroy = function (err, cb) { cb(err); }; Writable.prototype[EE.captureRejectionSymbol] = function (err) { this.destroy(err); }; var webStreamsAdapters; function lazyWebStreams() { if (webStreamsAdapters === void 0) webStreamsAdapters = {}; return webStreamsAdapters; } Writable.fromWeb = function (writableStream, options) { return lazyWebStreams().newStreamWritableFromWritableStream( writableStream, options, ); }; Writable.toWeb = function (streamWritable) { return lazyWebStreams().newWritableStreamFromStreamWritable( streamWritable, ); }; }, }); // node_modules/readable-stream/lib/internal/streams/duplexify.js var require_duplexify = __commonJS({ "node_modules/readable-stream/lib/internal/streams/duplexify.js"( exports, module, ) { "use strict"; var bufferModule = __require("buffer"); var { isReadable, isWritable, isIterable, isNodeStream, isReadableNodeStream, isWritableNodeStream, isDuplexNodeStream, } = require_utils(); var eos = require_end_of_stream(); var { AbortError, codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }, } = require_errors(); var { destroyer } = require_destroy(); var Duplex = require_duplex(); var Readable = require_readable(); var { createDeferredPromise } = require_util(); var from = require_from(); var Blob = globalThis.Blob || bufferModule.Blob; var isBlob = typeof Blob !== "undefined" ? function isBlob2(b) { return b instanceof Blob; } : function isBlob2(b) { return false; }; var AbortController = globalThis.AbortController || __require("abort-controller").AbortController; var { FunctionPrototypeCall } = require_primordials(); class Duplexify extends Duplex { constructor(options) { super(options); // https://github.com/nodejs/node/pull/34385 if ( (options === null || options === undefined ? undefined : options.readable) === false ) { this._readableState.readable = false; this._readableState.ended = true; this._readableState.endEmitted = true; } if ( (options === null || options === undefined ? undefined : options.writable) === false ) { this._writableState.writable = false; this._writableState.ending = true; this._writableState.ended = true; this._writableState.finished = true; } } } module.exports = function duplexify(body, name) { if (isDuplexNodeStream(body)) { return body; } if (isReadableNodeStream(body)) { return _duplexify({ readable: body, }); } if (isWritableNodeStream(body)) { return _duplexify({ writable: body, }); } if (isNodeStream(body)) { return _duplexify({ writable: false, readable: false, }); } if (typeof body === "function") { const { value, write, final, destroy } = fromAsyncGen(body); if (isIterable(value)) { return from(Duplexify, value, { objectMode: true, write, final, destroy, }); } const then2 = value === null || value === void 0 ? void 0 : value.then; if (typeof then2 === "function") { let d; const promise = FunctionPrototypeCall( then2, value, (val) => { if (val != null) { throw new ERR_INVALID_RETURN_VALUE("nully", "body", val); } }, (err) => { destroyer(d, err); }, ); return (d = new Duplexify({ objectMode: true, readable: false, write, final(cb) { final(async () => { try { await promise; runOnNextTick(cb, null); } catch (err) { runOnNextTick(cb, err); } }); }, destroy, })); } throw new ERR_INVALID_RETURN_VALUE( "Iterable, AsyncIterable or AsyncFunction", name, value, ); } if (isBlob(body)) { return duplexify(body.arrayBuffer()); } if (isIterable(body)) { return from(Duplexify, body, { objectMode: true, writable: false, }); } if ( typeof (body === null || body === void 0 ? void 0 : body.writable) === "object" || typeof (body === null || body === void 0 ? void 0 : body.readable) === "object" ) { const readable = body !== null && body !== void 0 && body.readable ? isReadableNodeStream( body === null || body === void 0 ? void 0 : body.readable, ) ? body === null || body === void 0 ? void 0 : body.readable : duplexify(body.readable) : void 0; const writable = body !== null && body !== void 0 && body.writable ? isWritableNodeStream( body === null || body === void 0 ? void 0 : body.writable, ) ? body === null || body === void 0 ? void 0 : body.writable : duplexify(body.writable) : void 0; return _duplexify({ readable, writable, }); } const then = body === null || body === void 0 ? void 0 : body.then; if (typeof then === "function") { let d; FunctionPrototypeCall( then, body, (val) => { if (val != null) { d.push(val); } d.push(null); }, (err) => { destroyer(d, err); }, ); return (d = new Duplexify({ objectMode: true, writable: false, read() {}, })); } throw new ERR_INVALID_ARG_TYPE( name, [ "Blob", "ReadableStream", "WritableStream", "Stream", "Iterable", "AsyncIterable", "Function", "{ readable, writable } pair", "Promise", ], body, ); }; function fromAsyncGen(fn) { let { promise, resolve } = createDeferredPromise(); const ac = new AbortController(); const signal = ac.signal; const value = fn( (async function* () { while (true) { const _promise = promise; promise = null; const { chunk, done, cb } = await _promise; runOnNextTick(cb); if (done) return; if (signal.aborted) throw new AbortError(void 0, { cause: signal.reason, }); ({ promise, resolve } = createDeferredPromise()); yield chunk; } })(), { signal, }, ); return { value, write(chunk, encoding, cb) { const _resolve = resolve; resolve = null; _resolve({ chunk, done: false, cb, }); }, final(cb) { const _resolve = resolve; resolve = null; _resolve({ done: true, cb, }); }, destroy(err, cb) { ac.abort(); cb(err); }, }; } function _duplexify(pair) { const r = pair.readable && typeof pair.readable.read !== "function" ? Readable.wrap(pair.readable) : pair.readable; const w = pair.writable; let readable = !!isReadable(r); let writable = !!isWritable(w); let ondrain; let onfinish; let onreadable; let onclose; let d; function onfinished(err) { const cb = onclose; onclose = null; if (cb) { cb(err); } else if (err) { d.destroy(err); } else if (!readable && !writable) { d.destroy(); } } d = new Duplexify({ readableObjectMode: !!( r !== null && r !== void 0 && r.readableObjectMode ), writableObjectMode: !!( w !== null && w !== void 0 && w.writableObjectMode ), readable, writable, }); if (writable) { eos(w, (err) => { writable = false; if (err) { destroyer(r, err); } onfinished(err); }); d._write = function (chunk, encoding, callback) { if (w.write(chunk, encoding)) { callback(); } else { ondrain = callback; } }; d._final = function (callback) { w.end(); onfinish = callback; }; w.on("drain", function () { if (ondrain) { const cb = ondrain; ondrain = null; cb(); } }); w.on("finish", function () { if (onfinish) { const cb = onfinish; onfinish = null; cb(); } }); } if (readable) { eos(r, (err) => { readable = false; if (err) { destroyer(r, err); } onfinished(err); }); r.on("readable", function () { if (onreadable) { const cb = onreadable; onreadable = null; cb(); } }); r.on("end", function () { d.push(null); }); d._read = function () { while (true) { const buf = r.read(); if (buf === null) { onreadable = d._read; return; } if (!d.push(buf)) { return; } } }; } d._destroy = function (err, callback) { if (!err && onclose !== null) { err = new AbortError(); } onreadable = null; ondrain = null; onfinish = null; if (onclose === null) { callback(err); } else { onclose = callback; destroyer(w, err); destroyer(r, err); } }; return d; } }, }); // node_modules/readable-stream/lib/internal/streams/duplex.js var require_duplex = __commonJS({ "node_modules/readable-stream/lib/internal/streams/duplex.js"( exports, module, ) { "use strict"; var { ObjectDefineProperties, ObjectGetOwnPropertyDescriptor, ObjectKeys, ObjectSetPrototypeOf, } = require_primordials(); var Readable = require_readable(); function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options); Writable.call(this, options); if (options) { this.allowHalfOpen = options.allowHalfOpen !== false; if (options.readable === false) { this._readableState.readable = false; this._readableState.ended = true; this._readableState.endEmitted = true; } if (options.writable === false) { this._writableState.writable = false; this._writableState.ending = true; this._writableState.ended = true; this._writableState.finished = true; } } else { this.allowHalfOpen = true; } } module.exports = Duplex; ObjectSetPrototypeOf(Duplex.prototype, Readable.prototype); ObjectSetPrototypeOf(Duplex, Readable); { for (var method in Writable.prototype) { if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } } ObjectDefineProperties(Duplex.prototype, { writable: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writable"), writableHighWaterMark: ObjectGetOwnPropertyDescriptor( Writable.prototype, "writableHighWaterMark", ), writableObjectMode: ObjectGetOwnPropertyDescriptor( Writable.prototype, "writableObjectMode", ), writableBuffer: ObjectGetOwnPropertyDescriptor( Writable.prototype, "writableBuffer", ), writableLength: ObjectGetOwnPropertyDescriptor( Writable.prototype, "writableLength", ), writableFinished: ObjectGetOwnPropertyDescriptor( Writable.prototype, "writableFinished", ), writableCorked: ObjectGetOwnPropertyDescriptor( Writable.prototype, "writableCorked", ), writableEnded: ObjectGetOwnPropertyDescriptor( Writable.prototype, "writableEnded", ), writableNeedDrain: ObjectGetOwnPropertyDescriptor( Writable.prototype, "writableNeedDrain", ), destroyed: { get() { if ( this._readableState === void 0 || this._writableState === void 0 ) { return false; } return this._readableState.destroyed && this._writableState.destroyed; }, set(value) { if (this._readableState && this._writableState) { this._readableState.destroyed = value; this._writableState.destroyed = value; } }, }, }); var webStreamsAdapters; function lazyWebStreams() { if (webStreamsAdapters === void 0) webStreamsAdapters = {}; return webStreamsAdapters; } Duplex.fromWeb = function (pair, options) { return lazyWebStreams().newStreamDuplexFromReadableWritablePair( pair, options, ); }; Duplex.toWeb = function (duplex) { return lazyWebStreams().newReadableWritablePairFromDuplex(duplex); }; var duplexify; Duplex.from = function (body) { if (!duplexify) { duplexify = require_duplexify(); } return duplexify(body, "body"); }; }, }); // node_modules/readable-stream/lib/internal/streams/transform.js var require_transform = __commonJS({ "node_modules/readable-stream/lib/internal/streams/transform.js"( exports, module, ) { "use strict"; var { ObjectSetPrototypeOf, Symbol: Symbol2 } = require_primordials(); var { ERR_METHOD_NOT_IMPLEMENTED } = require_errors().codes; var Duplex = require_duplex(); function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options); this._readableState.sync = false; this[kCallback] = null; if (options) { if (typeof options.transform === "function") this._transform = options.transform; if (typeof options.flush === "function") this._flush = options.flush; } this.on("prefinish", prefinish.bind(this)); } ObjectSetPrototypeOf(Transform.prototype, Duplex.prototype); ObjectSetPrototypeOf(Transform, Duplex); module.exports = Transform; var kCallback = Symbol2("kCallback"); function final(cb) { if (typeof this._flush === "function" && !this.destroyed) { this._flush((er, data) => { if (er) { if (cb) { cb(er); } else { this.destroy(er); } return; } if (data != null) { this.push(data); } this.push(null); if (cb) { cb(); } }); } else { this.push(null); if (cb) { cb(); } } } function prefinish() { if (this._final !== final) { final.call(this); } } Transform.prototype._final = final; Transform.prototype._transform = function (chunk, encoding, callback) { throw new ERR_METHOD_NOT_IMPLEMENTED("_transform()"); }; Transform.prototype._write = function (chunk, encoding, callback) { const rState = this._readableState; const wState = this._writableState; const length = rState.length; this._transform(chunk, encoding, (err, val) => { if (err) { callback(err); return; } if (val != null) { this.push(val); } if ( wState.ended || length === rState.length || rState.length < rState.highWaterMark || rState.highWaterMark === 0 || rState.length === 0 ) { callback(); } else { this[kCallback] = callback; } }); }; Transform.prototype._read = function () { if (this[kCallback]) { const callback = this[kCallback]; this[kCallback] = null; callback(); } }; }, }); // node_modules/readable-stream/lib/internal/streams/passthrough.js var require_passthrough = __commonJS({ "node_modules/readable-stream/lib/internal/streams/passthrough.js"( exports, module, ) { "use strict"; var { ObjectSetPrototypeOf } = require_primordials(); var Transform = require_transform(); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } ObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype); ObjectSetPrototypeOf(PassThrough, Transform); PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; module.exports = PassThrough; }, }); // node_modules/readable-stream/lib/internal/streams/pipeline.js var require_pipeline = __commonJS({ "node_modules/readable-stream/lib/internal/streams/pipeline.js"( exports, module, ) { "use strict"; var { ArrayIsArray, Promise: Promise2, SymbolAsyncIterator, } = require_primordials(); var eos = require_end_of_stream(); var { once } = require_util(); var destroyImpl = require_destroy(); var Duplex = require_duplex(); var { aggregateTwoErrors, codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE, ERR_MISSING_ARGS, ERR_STREAM_DESTROYED, }, AbortError, } = require_errors(); var { validateFunction, validateAbortSignal } = require_validators(); var { isIterable, isReadable, isReadableNodeStream, isNodeStream } = require_utils(); var AbortController = globalThis.AbortController || __require("abort-controller").AbortController; var PassThrough; var Readable; function destroyer(stream, reading, writing) { let finished = false; stream.on("close", () => { finished = true; }); const cleanup = eos( stream, { readable: reading, writable: writing, }, (err) => { finished = !err; }, ); return { destroy: (err) => { if (finished) return; finished = true; destroyImpl.destroyer( stream, err || new ERR_STREAM_DESTROYED("pipe"), ); }, cleanup, }; } function popCallback(streams) { validateFunction( streams[streams.length - 1], "streams[stream.length - 1]", ); return streams.pop(); } function makeAsyncIterable(val) { if (isIterable(val)) { return val; } else if (isReadableNodeStream(val)) { return fromReadable(val); } throw new ERR_INVALID_ARG_TYPE( "val", ["Readable", "Iterable", "AsyncIterable"], val, ); } async function* fromReadable(val) { if (!Readable) { Readable = require_readable(); } yield* Readable.prototype[SymbolAsyncIterator].call(val); } async function pump(iterable, writable, finish, { end }) { let error; let onresolve = null; const resume = (err) => { if (err) { error = err; } if (onresolve) { const callback = onresolve; onresolve = null; callback(); } }; const wait = () => new Promise2((resolve, reject) => { if (error) { reject(error); } else { onresolve = () => { if (error) { reject(error); } else { resolve(); } }; } }); writable.on("drain", resume); const cleanup = eos( writable, { readable: false, }, resume, ); try { if (writable.writableNeedDrain) { await wait(); } for await (const chunk of iterable) { if (!writable.write(chunk)) { await wait(); } } if (end) { writable.end(); } await wait(); finish(); } catch (err) { finish(error !== err ? aggregateTwoErrors(error, err) : err); } finally { cleanup(); writable.off("drain", resume); } } function pipeline(...streams) { return pipelineImpl(streams, once(popCallback(streams))); } function pipelineImpl(streams, callback, opts) { if (streams.length === 1 && ArrayIsArray(streams[0])) { streams = streams[0]; } if (streams.length < 2) { throw new ERR_MISSING_ARGS("streams"); } const ac = new AbortController(); const signal = ac.signal; const outerSignal = opts === null || opts === void 0 ? void 0 : opts.signal; const lastStreamCleanup = []; validateAbortSignal(outerSignal, "options.signal"); function abort() { finishImpl(new AbortError()); } outerSignal === null || outerSignal === void 0 ? void 0 : outerSignal.addEventListener("abort", abort); let error; let value; const destroys = []; let finishCount = 0; function finish(err) { finishImpl(err, --finishCount === 0); } function finishImpl(err, final) { if (err && (!error || error.code === "ERR_STREAM_PREMATURE_CLOSE")) { error = err; } if (!error && !final) { return; } while (destroys.length) { destroys.shift()(error); } outerSignal === null || outerSignal === void 0 ? void 0 : outerSignal.removeEventListener("abort", abort); ac.abort(); if (final) { if (!error) { lastStreamCleanup.forEach((fn) => fn()); } runOnNextTick(callback, error, value); } } let ret; for (let i = 0; i < streams.length; i++) { const stream = streams[i]; const reading = i < streams.length - 1; const writing = i > 0; const end = reading || (opts === null || opts === void 0 ? void 0 : opts.end) !== false; const isLastStream = i === streams.length - 1; if (isNodeStream(stream)) { let onError = function (err) { if ( err && err.name !== "AbortError" && err.code !== "ERR_STREAM_PREMATURE_CLOSE" ) { finish(err); } }; if (end) { const { destroy, cleanup } = destroyer(stream, reading, writing); destroys.push(destroy); if (isReadable(stream) && isLastStream) { lastStreamCleanup.push(cleanup); } } stream.on("error", onError); if (isReadable(stream) && isLastStream) { lastStreamCleanup.push(() => { stream.removeListener("error", onError); }); } } if (i === 0) { if (typeof stream === "function") { ret = stream({ signal, }); if (!isIterable(ret)) { throw new ERR_INVALID_RETURN_VALUE( "Iterable, AsyncIterable or Stream", "source", ret, ); } } else if (isIterable(stream) || isReadableNodeStream(stream)) { ret = stream; } else { ret = Duplex.from(stream); } } else if (typeof stream === "function") { ret = makeAsyncIterable(ret); ret = stream(ret, { signal, }); if (reading) { if (!isIterable(ret, true)) { throw new ERR_INVALID_RETURN_VALUE( "AsyncIterable", `transform[${i - 1}]`, ret, ); } } else { var _ret; if (!PassThrough) { PassThrough = require_passthrough(); } const pt = new PassThrough({ objectMode: true, }); const then = (_ret = ret) === null || _ret === void 0 ? void 0 : _ret.then; if (typeof then === "function") { finishCount++; then.call( ret, (val) => { value = val; if (val != null) { pt.write(val); } if (end) { pt.end(); } runOnNextTick(finish); }, (err) => { pt.destroy(err); runOnNextTick(finish, err); }, ); } else if (isIterable(ret, true)) { finishCount++; pump(ret, pt, finish, { end, }); } else { throw new ERR_INVALID_RETURN_VALUE( "AsyncIterable or Promise", "destination", ret, ); } ret = pt; const { destroy, cleanup } = destroyer(ret, false, true); destroys.push(destroy); if (isLastStream) { lastStreamCleanup.push(cleanup); } } } else if (isNodeStream(stream)) { if (isReadableNodeStream(ret)) { finishCount += 2; const cleanup = pipe(ret, stream, finish, { end, }); if (isReadable(stream) && isLastStream) { lastStreamCleanup.push(cleanup); } } else if (isIterable(ret)) { finishCount++; pump(ret, stream, finish, { end, }); } else { throw new ERR_INVALID_ARG_TYPE( "val", ["Readable", "Iterable", "AsyncIterable"], ret, ); } ret = stream; } else { ret = Duplex.from(stream); } } if ( (signal !== null && signal !== void 0 && signal.aborted) || (outerSignal !== null && outerSignal !== void 0 && outerSignal.aborted) ) { runOnNextTick(abort); } return ret; } function pipe(src, dst, finish, { end }) { src.pipe(dst, { end, }); if (end) { src.once("end", () => dst.end()); } else { finish(); } eos( src, { readable: true, writable: false, }, (err) => { const rState = src._readableState; if ( err && err.code === "ERR_STREAM_PREMATURE_CLOSE" && rState && rState.ended && !rState.errored && !rState.errorEmitted ) { src.once("end", finish).once("error", finish); } else { finish(err); } }, ); return eos( dst, { readable: false, writable: true, }, finish, ); } module.exports = { pipelineImpl, pipeline, }; }, }); // node_modules/readable-stream/lib/internal/streams/compose.js var require_compose = __commonJS({ "node_modules/readable-stream/lib/internal/streams/compose.js"( exports, module, ) { "use strict"; var { pipeline } = require_pipeline(); var Duplex = require_duplex(); var { destroyer } = require_destroy(); var { isNodeStream, isReadable, isWritable } = require_utils(); var { AbortError, codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }, } = require_errors(); module.exports = function compose(...streams) { if (streams.length === 0) { throw new ERR_MISSING_ARGS("streams"); } if (streams.length === 1) { return Duplex.from(streams[0]); } const orgStreams = [...streams]; if (typeof streams[0] === "function") { streams[0] = Duplex.from(streams[0]); } if (typeof streams[streams.length - 1] === "function") { const idx = streams.length - 1; streams[idx] = Duplex.from(streams[idx]); } for (let n = 0; n < streams.length; ++n) { if (!isNodeStream(streams[n])) { continue; } if (n < streams.length - 1 && !isReadable(streams[n])) { throw new ERR_INVALID_ARG_VALUE( `streams[${n}]`, orgStreams[n], "must be readable", ); } if (n > 0 && !isWritable(streams[n])) { throw new ERR_INVALID_ARG_VALUE( `streams[${n}]`, orgStreams[n], "must be writable", ); } } let ondrain; let onfinish; let onreadable; let onclose; let d; function onfinished(err) { const cb = onclose; onclose = null; if (cb) { cb(err); } else if (err) { d.destroy(err); } else if (!readable && !writable) { d.destroy(); } } const head = streams[0]; const tail = pipeline(streams, onfinished); const writable = !!isWritable(head); const readable = !!isReadable(tail); d = new Duplex({ writableObjectMode: !!( head !== null && head !== void 0 && head.writableObjectMode ), readableObjectMode: !!( tail !== null && tail !== void 0 && tail.writableObjectMode ), writable, readable, }); if (writable) { d._write = function (chunk, encoding, callback) { if (head.write(chunk, encoding)) { callback(); } else { ondrain = callback; } }; d._final = function (callback) { head.end(); onfinish = callback; }; head.on("drain", function () { if (ondrain) { const cb = ondrain; ondrain = null; cb(); } }); tail.on("finish", function () { if (onfinish) { const cb = onfinish; onfinish = null; cb(); } }); } if (readable) { tail.on("readable", function () { if (onreadable) { const cb = onreadable; onreadable = null; cb(); } }); tail.on("end", function () { d.push(null); }); d._read = function () { while (true) { const buf = tail.read(); if (buf === null) { onreadable = d._read; return; } if (!d.push(buf)) { return; } } }; } d._destroy = function (err, callback) { if (!err && onclose !== null) { err = new AbortError(); } onreadable = null; ondrain = null; onfinish = null; if (onclose === null) { callback(err); } else { onclose = callback; destroyer(tail, err); } }; return d; }; }, }); // node_modules/readable-stream/lib/stream/promises.js var require_promises = __commonJS({ "node_modules/readable-stream/lib/stream/promises.js"(exports, module) { "use strict"; var { ArrayPrototypePop, Promise: Promise2 } = require_primordials(); var { isIterable, isNodeStream } = require_utils(); var { pipelineImpl: pl } = require_pipeline(); var { finished } = require_end_of_stream(); function pipeline(...streams) { return new Promise2((resolve, reject) => { let signal; let end; const lastArg = streams[streams.length - 1]; if ( lastArg && typeof lastArg === "object" && !isNodeStream(lastArg) && !isIterable(lastArg) ) { const options = ArrayPrototypePop(streams); signal = options.signal; end = options.end; } pl( streams, (err, value) => { if (err) { reject(err); } else { resolve(value); } }, { signal, end, }, ); }); } module.exports = { finished, pipeline, }; }, }); // node_modules/readable-stream/lib/stream.js var require_stream = __commonJS({ "node_modules/readable-stream/lib/stream.js"(exports, module) { "use strict"; var { ObjectDefineProperty, ObjectKeys, ReflectApply } = require_primordials(); var { promisify: { custom: customPromisify }, } = require_util(); var { streamReturningOperators, promiseReturningOperators } = require_operators(); var { codes: { ERR_ILLEGAL_CONSTRUCTOR }, } = require_errors(); var compose = require_compose(); var { pipeline } = require_pipeline(); var { destroyer } = require_destroy(); var eos = require_end_of_stream(); var promises = require_promises(); var utils = require_utils(); var Stream = (module.exports = require_legacy().Stream); Stream.isDisturbed = utils.isDisturbed; Stream.isErrored = utils.isErrored; Stream.isWritable = utils.isWritable; Stream.isReadable = utils.isReadable; Stream.Readable = require_readable(); for (const key of ObjectKeys(streamReturningOperators)) { let fn = function (...args) { if (new.target) { throw ERR_ILLEGAL_CONSTRUCTOR(); } return Stream.Readable.from(ReflectApply(op, this, args)); }; const op = streamReturningOperators[key]; ObjectDefineProperty(fn, "name", { value: op.name, }); ObjectDefineProperty(fn, "length", { value: op.length, }); ObjectDefineProperty(Stream.Readable.prototype, key, { value: fn, enumerable: false, configurable: true, writable: true, }); } for (const key of ObjectKeys(promiseReturningOperators)) { let fn = function (...args) { if (new.target) { throw ERR_ILLEGAL_CONSTRUCTOR(); } return ReflectApply(op, this, args); }; const op = promiseReturningOperators[key]; ObjectDefineProperty(fn, "name", { value: op.name, }); ObjectDefineProperty(fn, "length", { value: op.length, }); ObjectDefineProperty(Stream.Readable.prototype, key, { value: fn, enumerable: false, configurable: true, writable: true, }); } Stream.Writable = require_writable(); Stream.Duplex = require_duplex(); Stream.Transform = require_transform(); Stream.PassThrough = require_passthrough(); Stream.pipeline = pipeline; var { addAbortSignal } = require_add_abort_signal(); Stream.addAbortSignal = addAbortSignal; Stream.finished = eos; Stream.destroy = destroyer; Stream.compose = compose; ObjectDefineProperty(Stream, "promises", { configurable: true, enumerable: true, get() { return promises; }, }); ObjectDefineProperty(pipeline, customPromisify, { enumerable: true, get() { return promises.pipeline; }, }); ObjectDefineProperty(eos, customPromisify, { enumerable: true, get() { return promises.finished; }, }); Stream.Stream = Stream; Stream._isUint8Array = function isUint8Array(value) { return value instanceof Uint8Array; }; Stream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) { return new Buffer(chunk.buffer, chunk.byteOffset, chunk.byteLength); }; }, }); // node_modules/readable-stream/lib/ours/index.js var require_ours = __commonJS({ "node_modules/readable-stream/lib/ours/index.js"(exports, module) { "use strict"; const CustomStream = require_stream(); const promises = require_promises(); const originalDestroy = CustomStream.Readable.destroy; module.exports = CustomStream; module.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer; module.exports._isUint8Array = CustomStream._isUint8Array; module.exports.isDisturbed = CustomStream.isDisturbed; module.exports.isErrored = CustomStream.isErrored; module.exports.isWritable = CustomStream.isWritable; module.exports.isReadable = CustomStream.isReadable; module.exports.Readable = CustomStream.Readable; module.exports.Writable = CustomStream.Writable; module.exports.Duplex = CustomStream.Duplex; module.exports.Transform = CustomStream.Transform; module.exports.PassThrough = CustomStream.PassThrough; module.exports.addAbortSignal = CustomStream.addAbortSignal; module.exports.finished = CustomStream.finished; module.exports.destroy = CustomStream.destroy; module.exports.destroy = originalDestroy; module.exports.pipeline = CustomStream.pipeline; module.exports.compose = CustomStream.compose; module.exports._getNativeReadableStreamPrototype = getNativeReadableStreamPrototype; module.exports.NativeWritable = NativeWritable; Object.defineProperty(CustomStream, "promises", { configurable: true, enumerable: true, get() { return promises; }, }); module.exports.Stream = CustomStream.Stream; module.exports.default = module.exports; }, }); /** * Bun native stream wrapper * * This glue code lets us avoid using ReadableStreams to wrap Bun internal streams * */ function createNativeStreamReadable(nativeType, Readable) { var [pull, start, cancel, setClose, deinit, updateRef, drainFn] = globalThis[Symbol.for("Bun.lazy")](nativeType); var closer = [false]; var handleNumberResult = function (nativeReadable, result, view, isClosed) { if (result > 0) { const slice = view.subarray(0, result); const remainder = view.subarray(result); if (slice.byteLength > 0) { nativeReadable.push(slice); } if (isClosed) { nativeReadable.push(null); } return remainder.byteLength > 0 ? remainder : undefined; } if (isClosed) { nativeReadable.push(null); } return view; }; var handleArrayBufferViewResult = function ( nativeReadable, result, view, isClosed, ) { if (result.byteLength > 0) { nativeReadable.push(result); } if (isClosed) { nativeReadable.push(null); } return view; }; var DYNAMICALLY_ADJUST_CHUNK_SIZE = process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE !== "1"; const finalizer = new FinalizationRegistry((ptr) => ptr && deinit(ptr)); const MIN_BUFFER_SIZE = 256; var NativeReadable = class NativeReadable extends Readable { #ptr; #refCount = 1; #constructed = false; #remainingChunk = undefined; #highWaterMark; #pendingRead = false; #hasResized = !DYNAMICALLY_ADJUST_CHUNK_SIZE; #unregisterToken; constructor(ptr, options = {}) { super(options); if (typeof options.highWaterMark === "number") { this.#highWaterMark = options.highWaterMark; } else { this.#highWaterMark = 256 * 1024; } this.#ptr = ptr; this.#constructed = false; this.#remainingChunk = undefined; this.#pendingRead = false; this.#unregisterToken = {}; finalizer.register(this, this.#ptr, this.#unregisterToken); } // maxToRead is by default the highWaterMark passed from the Readable.read call to this fn // However, in the case of an fs.ReadStream, we can pass the number of bytes we want to read // which may be significantly less than the actual highWaterMark _read(maxToRead) { __DEBUG__ && debug("NativeReadable._read", this.__id); if (this.#pendingRead) { __DEBUG__ && debug("pendingRead is true", this.__id); return; } var ptr = this.#ptr; __DEBUG__ && debug("ptr @ NativeReadable._read", ptr, this.__id); if (ptr === 0) { this.push(null); return; } if (!this.#constructed) { __DEBUG__ && debug("NativeReadable not constructed yet", this.__id); this.#internalConstruct(ptr); } return this.#internalRead(this.#getRemainingChunk(maxToRead), ptr); // const internalReadRes = this.#internalRead( // this.#getRemainingChunk(), // ptr, // ); // // REVERT ME // const wrap = new Promise((resolve) => { // if (!this.internalReadRes?.then) { // debug("internalReadRes not promise"); // resolve(internalReadRes); // return; // } // internalReadRes.then((result) => { // debug("internalReadRes done"); // resolve(result); // }); // }); // return wrap; } #internalConstruct(ptr) { this.#constructed = true; const result = start(ptr, this.#highWaterMark); __DEBUG__ && debug("NativeReadable internal `start` result", result, this.__id); if (typeof result === "number" && result > 1) { this.#hasResized = true; __DEBUG__ && debug("NativeReadable resized", this.__id); this.#highWaterMark = Math.min(this.#highWaterMark, result); } if (drainFn) { const drainResult = drainFn(ptr); __DEBUG__ && debug("NativeReadable drain result", drainResult, this.__id); if ((drainResult?.byteLength ?? 0) > 0) { this.push(drainResult); } } } // maxToRead can be the highWaterMark (by default) or the remaining amount of the stream to read // This is so the the consumer of the stream can terminate the stream early if they know // how many bytes they want to read (ie. when reading only part of a file) #getRemainingChunk(maxToRead = this.#highWaterMark) { var chunk = this.#remainingChunk; __DEBUG__ && debug("chunk @ #getRemainingChunk", chunk, this.__id); if (chunk?.byteLength ?? 0 < MIN_BUFFER_SIZE) { var size = maxToRead > MIN_BUFFER_SIZE ? maxToRead : MIN_BUFFER_SIZE; this.#remainingChunk = chunk = new Buffer(size); } return chunk; } push(result, encoding) { __DEBUG__ && debug( "NativeReadable push -- result, encoding", result, encoding, this.__id, ); return super.push(...arguments); } #handleResult(result, view, isClosed) { __DEBUG__ && debug("result, isClosed @ #handleResult", result, isClosed, this.__id); if (typeof result === "number") { if (result >= this.#highWaterMark && !this.#hasResized && !isClosed) { this.#highWaterMark *= 2; this.#hasResized = true; } return handleNumberResult(this, result, view, isClosed); } else if (typeof result === "boolean") { this.push(null); return view?.byteLength ?? 0 > 0 ? view : undefined; } else if (ArrayBuffer.isView(result)) { if ( result.byteLength >= this.#highWaterMark && !this.#hasResized && !isClosed ) { this.#highWaterMark *= 2; this.#hasResized = true; __DEBUG__ && debug("Resized", this.__id); } return handleArrayBufferViewResult(this, result, view, isClosed); } else { __DEBUG__ && debug("Unknown result type", result, this.__id); throw new Error("Invalid result from pull"); } } #internalRead(view, ptr) { __DEBUG__ && debug("#internalRead()", this.__id); closer[0] = false; var result = pull(ptr, view, closer); if (isPromise(result)) { this.#pendingRead = true; return result.then( (result) => { this.#pendingRead = false; __DEBUG__ && debug( "pending no longerrrrrrrr (result returned from pull)", this.__id, ); this.#remainingChunk = this.#handleResult(result, view, closer[0]); }, (reason) => { __DEBUG__ && debug("error from pull", reason, this.__id); errorOrDestroy(this, reason); }, ); } else { this.#remainingChunk = this.#handleResult(result, view, closer[0]); } } _destroy(error, callback) { var ptr = this.#ptr; if (ptr === 0) { callback(error); return; } finalizer.unregister(this.#unregisterToken); this.#ptr = 0; if (updateRef) { updateRef(ptr, false); } __DEBUG__ && debug("NativeReadable destroyed", this.__id); cancel(ptr, error); callback(error); } ref() { var ptr = this.#ptr; if (ptr === 0) return; if (this.#refCount++ === 0) { updateRef(ptr, true); } } unref() { var ptr = this.#ptr; if (ptr === 0) return; if (this.#refCount-- === 1) { updateRef(ptr, false); } } }; if (!updateRef) { NativeReadable.prototype.ref = undefined; NativeReadable.prototype.unref = undefined; } return NativeReadable; } var nativeReadableStreamPrototypes = { 0: undefined, 1: undefined, 2: undefined, 3: undefined, 4: undefined, 5: undefined, }; function getNativeReadableStreamPrototype(nativeType, Readable) { return (nativeReadableStreamPrototypes[nativeType] ||= createNativeStreamReadable(nativeType, Readable)); } function getNativeReadableStream(Readable, stream, options) { if ( !(stream && typeof stream === "object" && stream instanceof ReadableStream) ) { return undefined; } const native = direct(stream); if (!native) { debug("no native readable stream"); return undefined; } const { stream: ptr, data: type } = native; const NativeReadable = getNativeReadableStreamPrototype(type, Readable); return new NativeReadable(ptr, options); } /** --- Bun native stream wrapper --- */ var Writable = require_writable(); var NativeWritable = class NativeWritable extends Writable { #pathOrFdOrSink; #fileSink; #native = true; _construct; _destroy; _final; constructor(pathOrFdOrSink, options = {}) { super(options); this._construct = this.#internalConstruct; this._destroy = this.#internalDestroy; this._final = this.#internalFinal; this.#pathOrFdOrSink = pathOrFdOrSink; } // These are confusingly two different fns for construct which initially were the same thing because // `_construct` is part of the lifecycle of Writable and is not called lazily, // so we need to separate our _construct for Writable state and actual construction of the write stream #internalConstruct(cb) { this._writableState.constructed = true; this.constructed = true; cb(); } #lazyConstruct() { // TODO: Turn this check into check for instanceof FileSink if (typeof this.#pathOrFdOrSink === "object") { if (typeof this.#pathOrFdOrSink.write === "function") { this.#fileSink = this.#pathOrFdOrSink; } else { throw new Error("Invalid FileSink"); } } else { this.#fileSink = Bun.file(this.#pathOrFdOrSink).writer(); } } write(chunk, encoding, cb, native = this.#native) { if (!native) { this.#native = false; return super.write(chunk, encoding, cb); } if (!this.#fileSink) { this.#lazyConstruct(); } var fileSink = this.#fileSink; var result = fileSink.write(chunk); if (isPromise(result)) { // var writePromises = this.#writePromises; // var i = writePromises.length; // writePromises[i] = result; result.then(() => { this.emit("drain"); fileSink.flush(true); // // We can't naively use i here because we don't know when writes will resolve necessarily // writePromises.splice(writePromises.indexOf(result), 1); }); return false; } fileSink.flush(true); // TODO: Should we just have a calculation based on encoding and length of chunk? if (cb) cb(null, chunk.byteLength); return true; } end(chunk, encoding, cb, native = this.#native) { return super.end(chunk, encoding, cb, native); } #internalDestroy(error, cb) { this._writableState.destroyed = true; if (cb) cb(error); } #internalFinal(cb) { if (this.#fileSink) { this.#fileSink.end(); } if (cb) cb(); } ref() { if (!this.#fileSink) { this.#lazyConstruct(); } this.#fileSink.ref(); } unref() { if (!this.#fileSink) return; this.#fileSink.unref(); } }; const stream_exports = require_ours(); stream_exports[Symbol.for("CommonJS")] = 0; export default stream_exports; export var _uint8ArrayToBuffer = stream_exports._uint8ArrayToBuffer; export var _isUint8Array = stream_exports._isUint8Array; export var isDisturbed = stream_exports.isDisturbed; export var isErrored = stream_exports.isErrored; export var isWritable = stream_exports.isWritable; export var isReadable = stream_exports.isReadable; export var Readable = stream_exports.Readable; export var Writable = stream_exports.Writable; export var Duplex = stream_exports.Duplex; export var Transform = stream_exports.Transform; export var PassThrough = stream_exports.PassThrough; export var addAbortSignal = stream_exports.addAbortSignal; export var finished = stream_exports.finished; export var destroy = stream_exports.destroy; export var pipeline = stream_exports.pipeline; export var compose = stream_exports.compose; export var Stream = stream_exports.Stream; export var eos = (stream_exports["eos"] = require_end_of_stream); export var _getNativeReadableStreamPrototype = stream_exports._getNativeReadableStreamPrototype; export var NativeWritable = stream_exports.NativeWritable;