var __bare_os_bundle_exports__ = (() => { 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 __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) { if (typeof require !== "undefined") return require.apply(this, arguments); throw Error('Dynamic require of "' + x + '" is not supported'); }); var __commonJS = (cb, mod) => function __require2() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; 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], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // ../../node_modules/bare-ansi-escapes/index.js var require_bare_ansi_escapes = __commonJS({ "../../node_modules/bare-ansi-escapes/index.js"(exports) { var ESC = "\x1B"; var CSI = ESC + "["; var SGR = (n) => CSI + n + "m"; exports.constants = { ESC, CSI, SGR }; exports.cursorHide = CSI + "?25l"; exports.cursorShow = CSI + "?25h"; exports.cursorUp = function cursorUp(n = 1) { return CSI + n + "A"; }; exports.cursorDown = function cursorDown(n = 1) { return CSI + n + "B"; }; exports.cursorForward = function cursorForward(n = 1) { return CSI + n + "C"; }; exports.cursorBack = function cursorBack(n = 1) { return CSI + n + "D"; }; exports.cursorNextLine = function cursorNextLine(n = 1) { return CSI + n + "E"; }; exports.cursorPreviousLine = function cursorPreviousLine(n = 1) { return CSI + n + "F"; }; exports.cursorPosition = function cursorPosition(column, row = 0) { if (row === 0) return CSI + (column + 1) + "G"; return CSI + (row + 1) + ";" + (column + 1) + "H"; }; exports.eraseDisplayEnd = CSI + "J"; exports.eraseDisplayStart = CSI + "1J"; exports.eraseDisplay = CSI + "2J"; exports.eraseLineEnd = CSI + "K"; exports.eraseLineStart = CSI + "1K"; exports.eraseLine = CSI + "2K"; exports.scrollUp = function scrollUp(n = 1) { return CSI + n + "S"; }; exports.scrollDown = function scrollDown(n = 1) { return CSI + n + "T"; }; exports.modifierReset = SGR(0); exports.modifierBold = SGR(1); exports.modifierDim = SGR(2); exports.modifierItalic = SGR(3); exports.modifierUnderline = SGR(4); exports.modifierNormal = SGR(22); exports.modifierNotItalic = SGR(23); exports.modifierNotUnderline = SGR(24); exports.colorBlack = SGR(30); exports.colorRed = SGR(31); exports.colorGreen = SGR(32); exports.colorYellow = SGR(33); exports.colorBlue = SGR(34); exports.colorMagenta = SGR(35); exports.colorCyan = SGR(36); exports.colorWhite = SGR(37); exports.colorDefault = SGR(39); exports.colorBrightBlack = SGR(90); exports.colorBrightRed = SGR(91); exports.colorBrightGreen = SGR(92); exports.colorBrightYellow = SGR(93); exports.colorBrightBlue = SGR(94); exports.colorBrightMagenta = SGR(95); exports.colorBrightCyan = SGR(96); exports.colorBrightWhite = SGR(97); } }); // ../../node_modules/bare-type/binding.js var require_binding = __commonJS({ "../../node_modules/bare-type/binding.js"(exports, module) { module.exports = __require.addon(); } }); // ../../node_modules/bare-type/index.js var require_bare_type = __commonJS({ "../../node_modules/bare-type/index.js"(exports, module) { var binding = require_binding(); var t = binding.constants; var Type = class { constructor(type) { this._type = type; } isUndefined() { return this._type === t.UNDEFINED; } isNull() { return this._type === t.NULL; } isBoolean() { return this._type === t.BOOLEAN; } isNumber() { return (this._type & 255) === t.NUMBER; } isInt32() { return (this._type & (255 | t.INT32)) === (t.NUMBER | t.INT32); } isUint32() { return (this._type & (255 | t.UINT32)) === (t.NUMBER | t.UINT32); } isString() { return this._type === t.STRING; } isSymbol() { return this._type === t.SYMBOL; } isObject() { return (this._type & 255) === t.OBJECT; } isArray() { return this._type === (t.OBJECT | t.ARRAY); } isArguments() { return this._type === (t.OBJECT | t.ARGUMENTS); } isDate() { return this._type === (t.OBJECT | t.DATE); } isRegExp() { return this._type === (t.OBJECT | t.REGEXP); } isError() { return this._type === (t.OBJECT | t.ERROR); } isPromise() { return this._type === (t.OBJECT | t.PROMISE); } isProxy() { return this._type === (t.OBJECT | t.PROXY); } isGenerator() { return this._type === (t.OBJECT | t.GENERATOR); } isMap() { return this._type === (t.OBJECT | t.MAP); } isSet() { return this._type === (t.OBJECT | t.SET); } isWeakMap() { return this._type === (t.OBJECT | t.WEAK_MAP); } isWeakSet() { return this._type === (t.OBJECT | t.WEAK_SET); } isWeakRef() { return this._type === (t.OBJECT | t.WEAK_REF); } isArrayBuffer() { return this._type === (t.OBJECT | t.ARRAYBUFFER); } isSharedArrayBuffer() { return this._type === (t.OBJECT | t.SHAREDARRAYBUFFER); } isTypedArray() { return (this._type & 65535) === (t.OBJECT | t.TYPEDARRAY); } isInt8Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.INT8ARRAY); } isUint8Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.UINT8ARRAY); } isUint8ClampedArray() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.UINT8CLAMPEDARRAY); } isInt16Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.INT16ARRAY); } isUint16Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.UINT16ARRAY); } isInt32Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.INT32ARRAY); } isUint32Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.UINT32ARRAY); } isFloat16Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.FLOAT16ARRAY); } isFloat32Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.FLOAT32ARRAY); } isFloat64Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.FLOAT64ARRAY); } isBigInt64Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.BIGINT64ARRAY); } isBigUint64Array() { return this._type === (t.OBJECT | t.TYPEDARRAY | t.BIGUINT64ARRAY); } isDataView() { return this._type === (t.OBJECT | t.DATAVIEW); } isModuleNamespace() { return this._type === (t.OBJECT | t.MODULE_NAMESPACE); } isFunction() { return (this._type & 255) === t.FUNCTION; } isAsyncFunction() { return (this._type & (255 | t.ASYNC_FUNCTION)) === (t.FUNCTION | t.ASYNC_FUNCTION); } isGeneratorFunction() { return (this._type & (255 | t.GENERATOR_FUNCTION)) === (t.FUNCTION | t.GENERATOR_FUNCTION); } isExternal() { return this._type === t.EXTERNAL; } isBigInt() { return this._type === t.BIGINT; } }; module.exports = exports = function type(value) { switch (typeof value) { case "undefined": return new Type(t.UNDEFINED); case "boolean": return new Type(t.BOOLEAN); case "number": return new Type( Number.isSafeInteger(value) ? binding.type(value) : t.NUMBER ); case "string": return new Type(t.STRING); case "symbol": return new Type(t.SYMBOL); case "object": return new Type(value === null ? t.NULL : binding.type(value)); case "function": return new Type(binding.type(value)); case "bigint": return new Type(t.BIGINT); } }; exports.createTag = function createTag(...components) { const tag = new Uint32Array(4); for (let i = 0; i < 4; i++) tag[i] = components[i] || 0; return tag; }; exports.addTag = function addTag(object, tag) { binding.addTag(object, tag); }; exports.checkTag = function checkTag(object, tag) { return binding.checkTag(object, tag); }; } }); // ../../node_modules/bare-inspect/binding.js var require_binding2 = __commonJS({ "../../node_modules/bare-inspect/binding.js"(exports, module) { module.exports = __require.addon(); } }); // ../../node_modules/bare-inspect/index.js var require_bare_inspect = __commonJS({ "../../node_modules/bare-inspect/index.js"(exports, module) { var ansiEscapes = require_bare_ansi_escapes(); var getType = require_bare_type(); var binding = require_binding2(); var defaultDepth = 2; var defaultBreakLength = 80; var defaultMaxArrayLength = 40; module.exports = exports = function inspect(value, opts = {}) { const { colors = false, depth = defaultDepth, breakLength = defaultBreakLength, stylize = defaultStylize(colors) } = opts; const references = new InspectRefMap(); const tree = inspectValue(value, 0, { colors, depth, breakLength, stylize, references }); return tree.toString(); }; exports.styles = { bigint: ansiEscapes.colorYellow, boolean: ansiEscapes.colorYellow, date: ansiEscapes.colorMagenta, module: ansiEscapes.modifierUnderline, name: ansiEscapes.modifierReset, null: ansiEscapes.modifierBold, number: ansiEscapes.colorYellow, regexp: ansiEscapes.colorRed, special: ansiEscapes.colorCyan, string: ansiEscapes.colorGreen, symbol: ansiEscapes.colorGreen, undefined: ansiEscapes.colorBrightBlack }; var styles = exports.styles; function defaultStylize(colors) { return function stylize(value, style) { const color = colors && styles[style]; if (color) return color + value + ansiEscapes.modifierReset; return value; }; } var InspectRefMap = class { constructor() { this.refs = /* @__PURE__ */ new WeakMap(); this.ids = /* @__PURE__ */ new WeakMap(); this.nextId = 1; } has(object) { return this.refs.has(object); } get(object) { return this.refs.get(object) || null; } set(object, ref) { this.refs.set(object, ref); } id(object) { let id = this.ids.get(object); if (id) return id; id = this.nextId++; this.ids.set(object, id); return id; } }; var InspectNode = class { constructor(depth, length, opts) { const { breakLength = defaultBreakLength, breakAlways = false } = opts; this.depth = depth; this.length = length; this.breakLength = breakLength; this.breakAlways = breakAlways; } pad(n, string) { return string.padStart(n, " "); } indent(n, string) { return " ".repeat(n) + string; } }; var InspectRef = class extends InspectNode { constructor(depth, opts) { super(depth, "[circular *]".length, opts); this.refs = opts.references; this.count = 0; this.circular = false; this.color = opts.colors && styles.special; } get id() { return this.refs.id(this); } increment() { return ++this.count; } decrement() { return --this.count; } toString(opts = {}) { const { offset = 0, pad = 0, indent = 0 } = opts; let value = this.pad(pad, "[circular *" + this.id + "]"); if (this.color) value = this.color + value + ansiEscapes.modifierReset; return offset ? value : this.indent(indent, value); } }; var InspectLeaf = class extends InspectNode { constructor(value, color, depth, opts) { const length = value.length; if (value.includes("\n")) { value = value.replaceAll("\n", "\n" + " ".repeat(depth)); opts = { ...opts, breakAlways: true }; } super(depth, length, opts); this.value = value; this.color = opts.colors && color; } toString(opts = {}) { const { offset = 0, pad = 0, indent = 0 } = opts; let value = this.pad(pad, this.value); if (this.color) value = this.color + value + ansiEscapes.modifierReset; return offset ? value : this.indent(indent, value); } }; var InspectPair = class extends InspectNode { constructor(delim, left, right, depth, opts) { const length = left.length + delim.length + right.length; if (left.breakAlways || right.breakAlways) { opts = { ...opts, breakAlways: true }; } super(depth, length, opts); this.delim = delim; this.left = left; this.right = right; } toString(opts = {}) { const { indent = 0 } = opts; return this.indent( indent, this.left + this.delim + this.right.toString({ indent, offset: this.left.length + this.delim.length }) ); } }; var InspectSuspension = class extends InspectNode { constructor(overflow, depth, opts) { const label = `... ${overflow} more`; super(depth, label.length, opts); this.label = label; } toString(opts = {}) { const { indent = 0 } = opts; return this.indent(indent, this.label); } }; var InspectSequence = class extends InspectNode { constructor(header, footer, delim, values, ref, depth, opts) { const { tabulate = false } = opts; const length = (ref.circular ? "".length + 1 : 0) + header.length + values.reduce((length2, value, i) => length2 + value.length + (i === 0 ? 0 : delim.length), 0) + footer.length; if (values.some((value) => value.breakAlways)) { opts = { ...opts, breakAlways: true }; } super(depth, length, opts); this.header = header; this.footer = footer; this.delim = delim; this.values = values; this.ref = ref; this.tabulate = tabulate; } toString(opts = {}) { const { offset = 0, indent = 0 } = opts; const split = this.breakAlways || this.values.length && (offset + this.length > this.breakLength || indent * 2 + this.length > this.breakLength); let header = this.header; if (this.ref.circular) { header = " " + header; } if (this.values.length === 0) { header = header.trimEnd(); } if (offset === 0) { header = this.indent(indent, header); } if (split) { header = header.trimEnd() + "\n"; } let string = header; let columns = 1; let pad = 0; if (this.tabulate) { const widest = this.values.reduce( (length, value) => value.breakAlways ? length : Math.max(length, value.length), 0 ); if (widest) { columns = Math.max( columns, Math.floor((this.breakLength - indent * 2) / (widest + this.delim.length)) ); if (columns > 1) pad = widest; } } for (let i = 0, n = this.values.length, offset2 = 0; i < n; i++) { const value = this.values[i]; if (split) { let part; if (i % columns === 0 || value.breakAlways) { part = value.toString({ indent: indent + 1, pad }); } else { part = value.toString({ pad }); } string += part; if (i < n - 1) { if (i % columns === columns - 1 || this.values[i + 1].breakAlways) { string += this.delim.trimEnd() + "\n"; } else { string += this.delim; } } } else { if (i > 0) string += this.delim; string += value.toString({ offset: offset2 }); offset2 += value.length; } } let footer = this.footer; if (this.values.length === 0) { footer = footer.trimStart(); } if (split) { string += "\n" + this.indent(indent, footer.trimStart()); } else { string += footer; } return string; } }; function inspectValue(value, depth, opts) { const type = getType(value); if (type.isUndefined()) return inspectUndefined(depth, opts); if (type.isNull()) return inspectNull(depth, opts); if (type.isBoolean()) return inspectBoolean(value, depth, opts); if (type.isNumber()) return inspectNumber(value, depth, opts); if (type.isBigInt()) return inspectBigInt(value, depth, opts); if (type.isString()) return inspectString(value, depth, opts); if (type.isSymbol()) return inspectSymbol(value, depth, opts); if (type.isObject()) return inspectObject(type, value, depth, opts); if (type.isFunction()) return inspectFunction(type, value, depth, opts); if (type.isExternal()) return inspectExternal(value, opts, opts); } function inspectUndefined(depth, opts) { return new InspectLeaf("undefined", styles.undefined, depth, opts); } function inspectNull(depth, opts) { return new InspectLeaf("null", styles.null, depth, opts); } function inspectBoolean(value, depth, opts) { return new InspectLeaf(value.toString(), styles.boolean, depth, opts); } function inspectNumber(value, depth, opts) { let string; if (Object.is(value, -0)) { string = "-0"; } else { string = value.toString(10); } return new InspectLeaf(string, styles.number, depth, opts); } function inspectBigInt(value, depth, opts) { return new InspectLeaf(value.toString(10) + "n", styles.bigint, depth, opts); } var STRING_ESCAPES = /[\ud800-\udbff][\udc00-\udfff]|[\u0000-\u001f'\\\ud800-\udfff]/g; function inspectString(value, depth, opts) { const string = value.replace(STRING_ESCAPES, (match) => { if (match.length === 2) return match; switch (match) { case "'": return "\\'"; case "\\": return "\\\\"; case "\b": return "\\b"; case " ": return "\\t"; case "\n": return "\\n"; case "\f": return "\\f"; case "\r": return "\\r"; default: return "\\u" + match.charCodeAt(0).toString(16).padStart(4, "0"); } }); return new InspectLeaf("'" + string + "'", styles.string, depth, opts); } function inspectSymbol(value, depth, opts) { return new InspectLeaf(value.toString(), styles.symbol, depth, opts); } var PLAIN_KEY = /^[a-zA-Z_][a-zA-Z_0-9]*$/; function inspectKey(value, depth, opts) { if (typeof value === "symbol") { return inspectValue(value, depth, opts); } else if (PLAIN_KEY.test(value)) { return new InspectLeaf(value, null, depth, opts); } else { return inspectValue(value, depth, opts); } } function inspectObject(type, object, depth, opts) { const refs = opts.references; let ref = refs.get(object); if (ref === null) { ref = new InspectRef(depth, opts); refs.set(object, ref); } else if (ref.count) { ref.circular = true; return ref; } const maxDepth = typeof opts.depth === "number" ? opts.depth : Infinity; if (maxDepth < depth) { const constructor = object.constructor; return new InspectLeaf( "[" + (constructor && constructor.name ? constructor.name : "Object") + "]", styles.special, depth, opts ); } const inspect = object[Symbol.for("bare.inspect")] || object[Symbol.for("nodejs.util.inspect.custom")]; if (typeof inspect === "function") { const value = inspect.call( object, typeof opts.depth === "number" ? opts.depth - depth : null, { colors: opts.colors, breakLength: opts.breakLength, stylize: opts.stylize }, exports ); if (typeof value === "object" && value !== null) { refs.set(value, ref); } if (typeof value !== "string") { return inspectValue(value, depth, opts); } return new InspectLeaf(value, null, depth, opts); } if (type.isArray()) return inspectArray(object, ref, depth, opts); if (type.isDate()) return inspectDate(object, ref, depth, opts); if (type.isRegExp()) return inspectRegExp(object, ref, depth, opts); if (type.isError()) return inspectError(object, ref, depth, opts); if (type.isPromise()) return inspectPromise(object, ref, depth, opts); if (type.isMap()) return inspectMap(object, ref, depth, opts); if (type.isSet()) return inspectSet(object, ref, depth, opts); if (type.isWeakMap()) return inspectWeakMap(object, ref, depth, opts); if (type.isWeakSet()) return inspectWeakSet(object, ref, depth, opts); if (type.isWeakRef()) return inspectWeakRef(object, ref, depth, opts); if (type.isArrayBuffer()) return inspectArrayBuffer(object, ref, depth, opts); if (type.isSharedArrayBuffer()) return inspectSharedArrayBuffer(object, ref, depth, opts); if (type.isTypedArray()) return inspectTypedArray(object, ref, depth, opts); if (type.isDataView()) return inspectDataView(object, ref, depth, opts); ref.increment(); const values = []; for (const key in object) { if (key === "constructor") continue; values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(object[key], depth + 1, opts), depth + 1, opts ) ); } for (const key of Object.getOwnPropertySymbols(object)) { values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(object[key], depth + 1, opts), depth + 1, opts ) ); } ref.decrement(); let header = "{ "; const tag = object[Symbol.toStringTag]; if (tag) header = "[" + tag + "] " + header; if (object.constructor) { const name = object.constructor.name; if (name && name !== "Object") { header = object.constructor.name + " " + header; } } return new InspectSequence(header, " }", ", ", values, ref, depth, opts); } function inspectArray(array, ref, depth, opts) { const { maxArrayLength = defaultMaxArrayLength } = opts; ref.increment(); const values = []; let remaining = Math.max(maxArrayLength, 0); for (let i = 0, n = array.length; i < n; i++) { if (remaining-- === 0) { values.push( new InspectSuspension(array.length - values.length, depth + 1, { ...opts, breakAlways: true }) ); break; } values.push(inspectValue(array[i], depth + 1, opts)); } for (const key of binding.getOwnNonIndexPropertyNames(array)) { values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(array[key], depth + 1, opts), depth + 1, { ...opts, breakAlways: remaining < 0 } ) ); } ref.decrement(); let header = "[ "; if (array.constructor.name !== "Array") { header = array.constructor.name + "(" + array.length + ") " + header; } return new InspectSequence(header, " ]", ", ", values, ref, depth, { ...opts, tabulate: true }); } function inspectDate(date, ref, depth, opts) { return new InspectLeaf(date.toISOString(), styles.date, depth, opts); } function inspectRegExp(regExp, ref, depth, opts) { return new InspectLeaf(regExp.toString(), styles.regexp, depth, opts); } function inspectError(error, ref, depth, opts) { let header; if ("stack" in error) { header = error.stack; if (depth > 0) { header = header.replaceAll("\n", "\n" + " ".repeat(depth)); } } else { header = error.toString(); } const builtins = ["cause"]; if (error.name === "AggregateError") { builtins.push("errors"); } else if (error.name === "SuppressedError") { builtins.push("error", "suppressed"); } const values = []; for (const key of builtins) { if (key in error === false) continue; values.push( new InspectPair( ": ", new InspectLeaf("[" + key + "]", null, depth + 1, opts), inspectValue(error[key], depth + 1, opts), depth + 1, opts ) ); } for (const key in error) { if (key === "constructor" || builtins.includes(key)) continue; values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(error[key], depth + 1, opts), depth + 1, opts ) ); } if (values.length === 0) return new InspectLeaf(header, null, depth, opts); return new InspectSequence(header + " {", " }", ", ", values, ref, depth, opts); } function inspectPromise(promise, ref, depth, opts) { ref.increment(); const state = binding.getPromiseState(promise); const values = []; switch (state) { case 0: values.push(new InspectLeaf("", styles.special, depth, opts)); break; case 1: values.push(inspectValue(binding.getPromiseResult(promise), depth, opts)); break; case 2: values.push( new InspectLeaf("", styles.special, depth, opts), inspectValue(binding.getPromiseResult(promise), depth, opts) ); } ref.decrement(); const header = promise.constructor.name + " { "; return new InspectSequence(header, " }", " ", values, ref, depth, opts); } function inspectMap(map, ref, depth, opts) { const { maxArrayLength = defaultMaxArrayLength, maxMapLength = maxArrayLength } = opts; ref.increment(); const values = []; let remaining = maxMapLength; for (const entry of map) { if (remaining-- === 0) { values.push( new InspectSuspension(map.size - values.length, depth + 1, { ...opts, breakAlways: true }) ); break; } values.push( new InspectPair( " => ", inspectValue(entry[0], depth + 1, opts), inspectValue(entry[1], depth + 1, opts), depth + 1, opts ) ); } for (const key in map) { if (key === "constructor") continue; const value = inspectValue(map[key], depth + 1, opts); values.push( new InspectPair(": ", inspectKey(key, depth + 1, opts), value, depth + 1, { ...opts, breakAlways: remaining < 0 }) ); } ref.decrement(); const header = map.constructor.name + "(" + map.size + ") { "; return new InspectSequence(header, " }", ", ", values, ref, depth, { ...opts, tabulate: true }); } function inspectSet(set, ref, depth, opts) { const { maxArrayLength = defaultMaxArrayLength, maxSetLength = maxArrayLength } = opts; ref.increment(); const values = []; let remaining = maxSetLength; for (const entry of set) { if (remaining-- === 0) { values.push( new InspectSuspension(set.size - values.length, depth + 1, { ...opts, breakAlways: true }) ); break; } values.push(inspectValue(entry, depth + 1, opts)); } for (const key in set) { if (key === "constructor") continue; const value = inspectValue(set[key], depth + 1, opts); values.push( new InspectPair(": ", inspectKey(key, depth + 1, opts), value, depth + 1, { ...opts, breakAlways: remaining < 0 }) ); } ref.decrement(); const header = set.constructor.name + "(" + set.size + ") { "; return new InspectSequence(header, " }", ", ", values, ref, depth, { ...opts, tabulate: true }); } function inspectWeakMap(weakMap, ref, depth, opts) { const header = weakMap.constructor.name + " { "; return new InspectSequence( header, " }", " ", [new InspectLeaf("", styles.special, depth + 1, opts)], ref, depth, opts ); } function inspectWeakSet(weakSet, ref, depth, opts) { const header = weakSet.constructor.name + " { "; return new InspectSequence( header, " }", " ", [new InspectLeaf("", styles.special, depth + 1, opts)], ref, depth, opts ); } function inspectWeakRef(weakRef, ref, depth, opts) { const target = weakRef.deref(); let value; if (target === void 0) { value = new InspectLeaf("", styles.special, depth + 1, opts); } else { value = inspectValue(target, depth + 1, opts); } const header = weakRef.constructor.name + " { "; return new InspectSequence(header, " }", " ", [value], ref, depth, opts); } function inspectArrayBuffer(arrayBuffer, ref, depth, opts) { ref.increment(); const values = []; for (const key of ["byteLength"]) { values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(arrayBuffer[key], depth + 1, opts), depth + 1, opts ) ); } ref.decrement(); const header = arrayBuffer.constructor.name + " { "; return new InspectSequence(header, " }", ", ", values, ref, depth, opts); } function inspectSharedArrayBuffer(sharedArrayBuffer, ref, depth, opts) { ref.increment(); const values = []; for (const key of ["byteLength"]) { values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(sharedArrayBuffer[key], depth + 1, opts), depth + 1, opts ) ); } ref.decrement(); const header = sharedArrayBuffer.constructor.name + " { "; return new InspectSequence(header, " }", ", ", values, ref, depth, opts); } function inspectTypedArray(typedArray, ref, depth, opts) { if (Buffer.isBuffer(typedArray)) { return inspectBuffer(typedArray, ref, depth, opts); } const { maxArrayLength = defaultMaxArrayLength, maxTypedArrayLength = maxArrayLength } = opts; ref.increment(); const values = []; let remaining = Math.max(maxTypedArrayLength, 0); for (let i = 0, n = typedArray.length; i < n; i++) { if (remaining-- === 0) { values.push( new InspectSuspension(typedArray.length - values.length, depth + 1, { ...opts, breakAlways: true }) ); break; } values.push(inspectValue(typedArray[i], depth + 1, opts)); } for (const key of binding.getOwnNonIndexPropertyNames(typedArray)) { values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(typedArray[key], depth + 1, opts), depth + 1, { ...opts, breakAlways: remaining < 0 } ) ); } ref.decrement(); const header = typedArray.constructor.name + "(" + typedArray.length + ") [ "; return new InspectSequence(header, " ]", ", ", values, ref, depth, { ...opts, tabulate: true }); } function inspectBuffer(buffer, ref, depth, opts) { const { maxArrayLength = defaultMaxArrayLength, maxBufferLength = maxArrayLength } = opts; ref.increment(); const values = []; let remaining = Math.max(maxBufferLength, 0); for (let i = 0, n = buffer.byteLength; i < n; i++) { if (remaining-- === 0) { values.push( new InspectSuspension(buffer.length - values.length, depth + 1, { ...opts, breakAlways: true }) ); break; } values.push(new InspectLeaf(buffer[i].toString(16).padStart(2, "0"), null, depth + 1, opts)); } for (const key of binding.getOwnNonIndexPropertyNames(buffer)) { values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(buffer[key], depth + 1, opts), depth + 1, { ...opts, breakAlways: remaining < 0 } ) ); } ref.decrement(); return new InspectSequence("", " ", values, ref, depth, { ...opts, tabulate: true }); } function inspectDataView(dataView, ref, depth, opts) { ref.increment(); const values = []; for (const key of ["byteLength", "byteOffset", "buffer"]) { values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(dataView[key], depth + 1, opts), depth + 1, opts ) ); } for (const key of binding.getOwnNonIndexPropertyNames(dataView)) { values.push( new InspectPair( ": ", inspectKey(key, depth + 1, opts), inspectValue(dataView[key], depth + 1, opts), depth + 1, opts ) ); } ref.decrement(); const header = dataView.constructor.name + " { "; return new InspectSequence(header, " }", ", ", values, ref, depth, opts); } function inspectFunction(type, fn, depth, opts) { if (fn.toString().startsWith("class")) return inspectClass(fn, depth, opts); let tag = "function"; if (type.isGeneratorFunction()) tag = "generator " + tag; if (type.isAsyncFunction()) tag = "async " + tag; return new InspectLeaf( "[" + tag + " " + (fn.name ? fn.name : "(anonymous)") + "]", styles.special, depth, opts ); } function inspectClass(ctor, depth, opts) { return new InspectLeaf( "[class " + (ctor.name ? ctor.name : "(anonymous)") + "]", styles.special, depth, opts ); } function inspectExternal(external, depth, opts) { return new InspectLeaf( "[external 0x" + binding.getExternal(external).toString(16) + "]", styles.special, depth, opts ); } } }); // ../../node_modules/bare-assert/index.js var require_bare_assert = __commonJS({ "../../node_modules/bare-assert/index.js"(exports, module) { var inspect = require_bare_inspect(); var AssertionError = class extends Error { constructor(opts = {}) { let { message = null, actual, expected, operator } = opts; if (message === null) { message = `${inspect(actual)} ${operator} ${inspect(expected)}`; } super(message); this.actual = actual; this.expected = expected; this.operator = operator; } get name() { return "AssertionError"; } get code() { "ASSERTION"; } }; function assertFail(opts, fn) { if (opts.message instanceof Error) throw opts.message; const err = new AssertionError(opts); if (Error.captureStackTrace) Error.captureStackTrace(err, fn); throw err; } module.exports = exports = function assert(actual, message) { if (actual) return; assertFail({ message, actual, expected: true, operator: "==" }, assert); }; exports.AssertionError = AssertionError; exports.fail = function fail(message) { if (message === void 0) message = "Failed"; assertFail({ message, operator: "fail" }, fail); }; exports.ok = function ok(actual, message) { if (actual) return; assertFail({ message, actual, expected: true, operator: "==" }, ok); }; exports.notOk = function ok(actual, message) { if (!actual) return; assertFail({ message, actual, expected: false, operator: "==" }, ok); }; exports.equal = function equal(actual, expected, message) { if (actual == expected || actual !== actual && expected !== expected) { return; } assertFail({ message, actual, expected, operator: "==" }, equal); }; exports.notEqual = function notEqual(actual, expected, message) { if (actual != expected && (actual === actual || expected === expected)) { return; } assertFail({ message, actual, expected, operator: "!=" }, notEqual); }; exports.strictEqual = function strictEqual(actual, expected, message) { if (Object.is(actual, expected)) return; assertFail( { message, actual, expected, operator: "strictEqual" }, strictEqual ); }; exports.notStrictEqual = function notStrictEqual(actual, expected, message) { if (!Object.is(actual, expected)) return; assertFail( { message, actual, expected, operator: "notStrictEqual" }, notStrictEqual ); }; } }); // ../../node_modules/bare-crypto/binding.js var require_binding3 = __commonJS({ "../../node_modules/bare-crypto/binding.js"(exports, module) { module.exports = __require.addon(); } }); // ../../node_modules/bare-crypto/lib/errors.js var require_errors = __commonJS({ "../../node_modules/bare-crypto/lib/errors.js"(exports, module) { module.exports = class CryptoError extends Error { constructor(msg, fn = CryptoError, code = fn.name) { super(`${code}: ${msg}`); this.code = code; if (Error.captureStackTrace) { Error.captureStackTrace(this, fn); } } get name() { return "CryptoError"; } static UNKNOWN_HASH(msg) { return new CryptoError(msg, CryptoError.UNKNOWN_HASH); } static UNKNOWN_CIPHER(msg) { return new CryptoError(msg, CryptoError.UNKNOWN_CIPHER); } static UNKNOWN_KEY_TYPE(msg) { return new CryptoError(msg, CryptoError.UNKNOWN_KEY_TYPE); } static INVALID_ACCESS(msg) { return new CryptoError(msg, CryptoError.INVALID_ACCESS); } static INVALID_DATA(msg) { return new CryptoError(msg, CryptoError.INVALID_DATA); } static OPERATION_ERROR(msg) { return new CryptoError(msg, CryptoError.OPERATION_ERROR); } static NOT_SUPPORTED(msg) { return new CryptoError(msg, CryptoError.NOT_SUPPORTED); } }; } }); // ../../node_modules/bare-crypto/lib/constants.js var require_constants = __commonJS({ "../../node_modules/bare-crypto/lib/constants.js"(exports, module) { var { fail } = require_bare_assert(); var binding = require_binding3(); var errors = require_errors(); module.exports = exports = { hash: { MD5: binding.MD5, SHA1: binding.SHA1, SHA256: binding.SHA256, SHA384: binding.SHA384, SHA512: binding.SHA512, BLAKE2B256: binding.BLAKE2B256, RIPEMD160: binding.RIPEMD160 }, signature: { ED25519: binding.ED25519 }, cipher: { AES128ECB: binding.AES128ECB, AES128CBC: binding.AES128CBC, AES128CTR: binding.AES128CTR, AES128OFB: binding.AES128OFB, AES256ECB: binding.AES256ECB, AES256CBC: binding.AES256CBC, AES256CTR: binding.AES256CTR, AES256OFB: binding.AES256OFB, AES128GCM: binding.AES128GCM, AES256GCM: binding.AES256GCM, CHACHA20POLY1305: binding.CHACHA20POLY1305, XCHACHA20POLY1305: binding.XCHACHA20POLY1305 }, keyType: { ED25519: binding.ED25519 } }; exports.toHash = function toHash(hash) { if (typeof hash === "number" && !isNaN(hash)) return hash; if (typeof hash === "string") { hash = hash.replace(/-/g, ""); if (hash in exports.hash === false) { hash = hash.toUpperCase(); if (hash in exports.hash === false) { throw errors.UNKNOWN_HASH(`Unknown hash '${hash}'`); } } return exports.hash[hash]; } fail(`Hash must be a number or string. Received ${isNaN(hash) ? "NaN" : typeof hash} (${hash})`); }; exports.toCipher = function toCiper(cipher) { if (typeof cipher === "number" && !isNaN(cipher)) return cipher; if (typeof cipher === "string") { cipher = cipher.replace(/-/g, ""); if (cipher in exports.cipher === false) { cipher = cipher.toUpperCase(); if (cipher in exports.cipher === false) { throw errors.UNKNOWN_CIPHER(`Unknown cipher '${cipher}'`); } } return exports.cipher[cipher]; } fail( `Cipher must be a number or string. Received ${isNaN(cipher) ? "NaN" : typeof cipher} (${cipher})` ); }; exports.toKeyType = function toKeyType(type) { if (typeof type === "number" && !isNaN(type)) return type; if (typeof type === "string") { type = type.replace(/-/g, ""); if (type in exports.keyType === false) { type = type.toUpperCase(); if (type in exports.keyType === false) { throw errors.UNKNOWN_KEY_TYPE(`Unknown key type '${type}'`); } } return exports.keyType[type]; } fail( `Key type must be a number or string. Received ${isNaN(type) ? "NaN" : typeof type} (${type})` ); }; } }); // ../../node_modules/b4a/index.js var require_b4a = __commonJS({ "../../node_modules/b4a/index.js"(exports, module) { function isBuffer(value) { return Buffer.isBuffer(value) || value instanceof Uint8Array; } function isEncoding(encoding) { return Buffer.isEncoding(encoding); } function alloc(size, fill2, encoding) { return Buffer.alloc(size, fill2, encoding); } function allocUnsafe(size) { return Buffer.allocUnsafe(size); } function allocUnsafeSlow(size) { return Buffer.allocUnsafeSlow(size); } function byteLength(string, encoding) { return Buffer.byteLength(string, encoding); } function compare(a, b) { return Buffer.compare(a, b); } function concat(buffers, totalLength) { return Buffer.concat(buffers, totalLength); } function copy(source, target, targetStart, start, end) { return toBuffer(source).copy(target, targetStart, start, end); } function equals(a, b) { return toBuffer(a).equals(b); } function fill(buffer, value, offset, end, encoding) { return toBuffer(buffer).fill(value, offset, end, encoding); } function from(value, encodingOrOffset, length) { return Buffer.from(value, encodingOrOffset, length); } function includes(buffer, value, byteOffset, encoding) { return toBuffer(buffer).includes(value, byteOffset, encoding); } function indexOf(buffer, value, byfeOffset, encoding) { return toBuffer(buffer).indexOf(value, byfeOffset, encoding); } function lastIndexOf(buffer, value, byteOffset, encoding) { return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding); } function swap16(buffer) { return toBuffer(buffer).swap16(); } function swap32(buffer) { return toBuffer(buffer).swap32(); } function swap64(buffer) { return toBuffer(buffer).swap64(); } function toBuffer(buffer) { if (Buffer.isBuffer(buffer)) return buffer; return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength); } function toString(buffer, encoding, start, end) { return toBuffer(buffer).toString(encoding, start, end); } function write(buffer, string, offset, length, encoding) { return toBuffer(buffer).write(string, offset, length, encoding); } function readDoubleBE(buffer, offset) { return toBuffer(buffer).readDoubleBE(offset); } function readDoubleLE(buffer, offset) { return toBuffer(buffer).readDoubleLE(offset); } function readFloatBE(buffer, offset) { return toBuffer(buffer).readFloatBE(offset); } function readFloatLE(buffer, offset) { return toBuffer(buffer).readFloatLE(offset); } function readInt32BE(buffer, offset) { return toBuffer(buffer).readInt32BE(offset); } function readInt32LE(buffer, offset) { return toBuffer(buffer).readInt32LE(offset); } function readUInt32BE(buffer, offset) { return toBuffer(buffer).readUInt32BE(offset); } function readUInt32LE(buffer, offset) { return toBuffer(buffer).readUInt32LE(offset); } function writeDoubleBE(buffer, value, offset) { return toBuffer(buffer).writeDoubleBE(value, offset); } function writeDoubleLE(buffer, value, offset) { return toBuffer(buffer).writeDoubleLE(value, offset); } function writeFloatBE(buffer, value, offset) { return toBuffer(buffer).writeFloatBE(value, offset); } function writeFloatLE(buffer, value, offset) { return toBuffer(buffer).writeFloatLE(value, offset); } function writeInt32BE(buffer, value, offset) { return toBuffer(buffer).writeInt32BE(value, offset); } function writeInt32LE(buffer, value, offset) { return toBuffer(buffer).writeInt32LE(value, offset); } function writeUInt32BE(buffer, value, offset) { return toBuffer(buffer).writeUInt32BE(value, offset); } function writeUInt32LE(buffer, value, offset) { return toBuffer(buffer).writeUInt32LE(value, offset); } module.exports = { isBuffer, isEncoding, alloc, allocUnsafe, allocUnsafeSlow, byteLength, compare, concat, copy, equals, fill, from, includes, indexOf, lastIndexOf, swap16, swap32, swap64, toBuffer, toString, write, readDoubleBE, readDoubleLE, readFloatBE, readFloatLE, readInt32BE, readInt32LE, readUInt32BE, readUInt32LE, writeDoubleBE, writeDoubleLE, writeFloatBE, writeFloatLE, writeInt32BE, writeInt32LE, writeUInt32BE, writeUInt32LE }; } }); // ../../node_modules/bare-events/lib/errors.js var require_errors2 = __commonJS({ "../../node_modules/bare-events/lib/errors.js"(exports, module) { module.exports = class EventEmitterError extends Error { constructor(msg, code, fn = EventEmitterError, opts) { super(`${code}: ${msg}`, opts); this.code = code; if (Error.captureStackTrace) { Error.captureStackTrace(this, fn); } } get name() { return "EventEmitterError"; } static OPERATION_ABORTED(cause, msg = "Operation aborted") { return new EventEmitterError(msg, "OPERATION_ABORTED", EventEmitterError.OPERATION_ABORTED, { cause }); } static UNHANDLED_ERROR(cause, msg = "Unhandled error") { return new EventEmitterError(msg, "UNHANDLED_ERROR", EventEmitterError.UNHANDLED_ERROR, { cause }); } }; } }); // ../../node_modules/bare-events/index.js var require_bare_events = __commonJS({ "../../node_modules/bare-events/index.js"(exports, module) { var errors = require_errors2(); var EventListener = class { constructor() { this.list = []; this.count = 0; } append(ctx, name, fn, once) { this.count++; ctx.emit("newListener", name, fn); this.list.push([fn, once]); } prepend(ctx, name, fn, once) { this.count++; ctx.emit("newListener", name, fn); this.list.unshift([fn, once]); } remove(ctx, name, fn) { for (let i = 0, n = this.list.length; i < n; i++) { const l = this.list[i]; if (l[0] === fn) { this.list.splice(i, 1); if (this.count === 1) delete ctx._events[name]; ctx.emit("removeListener", name, fn); this.count--; return; } } } removeAll(ctx, name) { const list = [...this.list]; this.list = []; if (this.count === list.length) delete ctx._events[name]; for (let i = list.length - 1; i >= 0; i--) { ctx.emit("removeListener", name, list[i][0]); } this.count -= list.length; } emit(ctx, name, ...args) { const list = [...this.list]; for (let i = 0, n = list.length; i < n; i++) { const l = list[i]; if (l[1] === true) this.remove(ctx, name, l[0]); Reflect.apply(l[0], ctx, args); } return list.length > 0; } }; function appendListener(ctx, name, fn, once) { if (ctx._events === void 0) ctx._events = /* @__PURE__ */ Object.create(null); const e = ctx._events[name] || (ctx._events[name] = new EventListener()); e.append(ctx, name, fn, once); return ctx; } function prependListener(ctx, name, fn, once) { if (ctx._events === void 0) ctx._events = /* @__PURE__ */ Object.create(null); const e = ctx._events[name] || (ctx._events[name] = new EventListener()); e.prepend(ctx, name, fn, once); return ctx; } function removeListener(ctx, name, fn) { if (ctx._events === void 0) return ctx; const e = ctx._events[name]; if (e !== void 0) e.remove(ctx, name, fn); return ctx; } function throwUnhandledError(...args) { let err; if (args.length > 0) err = args[0]; if (err instanceof Error === false) err = errors.UNHANDLED_ERROR(err); if (Error.captureStackTrace) { Error.captureStackTrace(err, exports.prototype.emit); } queueMicrotask(() => { throw err; }); } module.exports = exports = class EventEmitter { constructor() { this._events = /* @__PURE__ */ Object.create(null); } addListener(name, fn) { return appendListener(this, name, fn, false); } addOnceListener(name, fn) { return appendListener(this, name, fn, true); } prependListener(name, fn) { return prependListener(this, name, fn, false); } prependOnceListener(name, fn) { return prependListener(this, name, fn, true); } removeListener(name, fn) { return removeListener(this, name, fn); } on(name, fn) { return appendListener(this, name, fn, false); } once(name, fn) { return appendListener(this, name, fn, true); } off(name, fn) { return removeListener(this, name, fn); } emit(name, ...args) { if (name === "error" && this._events !== void 0 && this._events.error === void 0) { throwUnhandledError(...args); } if (this._events === void 0) return false; const e = this._events[name]; return e === void 0 ? false : e.emit(this, name, ...args); } listeners(name) { if (this._events === void 0) return []; const e = this._events[name]; return e === void 0 ? [] : [...e.list]; } rawListeners(name) { if (this._events === void 0) return []; const e = this._events[name]; return e === void 0 ? [] : e.list.map((l) => l[0]); } eventNames() { if (this._events === void 0) return []; return Reflect.ownKeys(this._events); } listenerCount(name) { if (this._events === void 0) return 0; const e = this._events[name]; return e === void 0 ? 0 : e.list.length; } getMaxListeners() { return EventEmitter.defaultMaxListeners; } setMaxListeners(n) { } removeAllListeners(name) { if (arguments.length === 0) { for (const key of Reflect.ownKeys(this._events)) { if (key === "removeListener") continue; this.removeAllListeners(key); } this.removeAllListeners("removeListener"); } else { const e = this._events[name]; if (e !== void 0) e.removeAll(this, name); } return this; } }; exports.EventEmitter = exports; exports.errors = errors; exports.defaultMaxListeners = 10; exports.on = function on(emitter, name, opts = {}) { const { signal } = opts; if (signal && signal.aborted) { throw errors.OPERATION_ABORTED(signal.reason); } let error = null; let done = false; const events = []; const promises = []; if (name !== "error") emitter.on("error", onerror); if (signal) signal.addEventListener("abort", onabort); emitter.on(name, onevent); return { next() { if (events.length) { return Promise.resolve({ value: events.shift(), done: false }); } if (error) { const err = error; error = null; return Promise.reject(err); } if (done) return onclose(); return new Promise((resolve, reject) => promises.push({ resolve, reject })); }, return() { return onclose(); }, throw(err) { return onerror(err); }, [Symbol.asyncIterator]() { return this; } }; function onevent(...args) { if (promises.length) { promises.shift().resolve({ value: args, done: false }); } else { events.push(args); } } function onerror(err) { emitter.off(name, onevent).off("error", onerror); if (promises.length) { promises.shift().reject(err); } else { error = err; } return Promise.resolve({ done: true }); } function onabort() { signal.removeEventListener("abort", onabort); onerror(errors.OPERATION_ABORTED(signal.reason)); } function onclose() { emitter.off(name, onevent); if (name !== "error") emitter.off("error", onerror); if (signal) signal.removeEventListener("abort", onabort); done = true; if (promises.length) promises.shift().resolve({ done: true }); return Promise.resolve({ done: true }); } }; exports.once = function once(emitter, name, opts = {}) { const { signal } = opts; if (signal && signal.aborted) { return Promise.reject(errors.OPERATION_ABORTED(signal.reason)); } return new Promise((resolve, reject) => { if (name !== "error") emitter.on("error", onerror); if (signal) signal.addEventListener("abort", onabort); emitter.once(name, onevent); function onevent(...args) { if (name !== "error") emitter.off("error", onerror); if (signal) signal.removeEventListener("abort", onabort); resolve(args); } function onerror(err) { emitter.off(name, onevent); if (name !== "error") emitter.off("error", onerror); reject(err); } function onabort() { signal.removeEventListener("abort", onabort); onerror(errors.OPERATION_ABORTED(signal.reason)); } }); }; exports.forward = function forward(from, to, names, opts = {}) { if (typeof names === "string") names = [names]; const { emit = to.emit.bind(to) } = opts; const listeners = names.map( (name) => function onevent(...args) { emit(name, ...args); } ); to.on("newListener", (name) => { const i = names.indexOf(name); if (i !== -1 && to.listenerCount(name) === 0) { from.on(name, listeners[i]); } }).on("removeListener", (name) => { const i = names.indexOf(name); if (i !== -1 && to.listenerCount(name) === 0) { from.off(name, listeners[i]); } }); }; exports.listenerCount = function listenerCount(emitter, name) { return emitter.listenerCount(name); }; exports.getMaxListeners = function getMaxListeners(emitter) { if (typeof emitter.getMaxListeners === "function") { return emitter.getMaxListeners(); } return exports.defaultMaxListeners; }; exports.setMaxListeners = function setMaxListeners(n, ...emitters) { if (emitters.length === 0) exports.defaultMaxListeners = n; else { for (const emitter of emitters) { if (typeof emitter.setMaxListeners === "function") { emitter.setMaxListeners(n); } } } }; } }); // ../bare-os-openssh/vendor/bare-node-shims/bare-node-events/index.js var require_bare_node_events = __commonJS({ "../bare-os-openssh/vendor/bare-node-shims/bare-node-events/index.js"(exports, module) { module.exports = require_bare_events(); } }); // ../../node_modules/events-universal/default.js var require_default = __commonJS({ "../../node_modules/events-universal/default.js"(exports, module) { module.exports = require_bare_node_events(); } }); // ../../node_modules/fast-fifo/fixed-size.js var require_fixed_size = __commonJS({ "../../node_modules/fast-fifo/fixed-size.js"(exports, module) { module.exports = class FixedFIFO { constructor(hwm) { if (!(hwm > 0) || (hwm - 1 & hwm) !== 0) throw new Error("Max size for a FixedFIFO should be a power of two"); this.buffer = new Array(hwm); this.mask = hwm - 1; this.top = 0; this.btm = 0; this.next = null; } clear() { this.top = this.btm = 0; this.next = null; this.buffer.fill(void 0); } push(data) { if (this.buffer[this.top] !== void 0) return false; this.buffer[this.top] = data; this.top = this.top + 1 & this.mask; return true; } shift() { const last = this.buffer[this.btm]; if (last === void 0) return void 0; this.buffer[this.btm] = void 0; this.btm = this.btm + 1 & this.mask; return last; } peek() { return this.buffer[this.btm]; } isEmpty() { return this.buffer[this.btm] === void 0; } }; } }); // ../../node_modules/fast-fifo/index.js var require_fast_fifo = __commonJS({ "../../node_modules/fast-fifo/index.js"(exports, module) { var FixedFIFO = require_fixed_size(); module.exports = class FastFIFO { constructor(hwm) { this.hwm = hwm || 16; this.head = new FixedFIFO(this.hwm); this.tail = this.head; this.length = 0; } clear() { this.head = this.tail; this.head.clear(); this.length = 0; } push(val) { this.length++; if (!this.head.push(val)) { const prev = this.head; this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length); this.head.push(val); } } shift() { if (this.length !== 0) this.length--; const val = this.tail.shift(); if (val === void 0 && this.tail.next) { const next = this.tail.next; this.tail.next = null; this.tail = next; return this.tail.shift(); } return val; } peek() { const val = this.tail.peek(); if (val === void 0 && this.tail.next) return this.tail.next.peek(); return val; } isEmpty() { return this.length === 0; } }; } }); // ../../node_modules/text-decoder/lib/pass-through-decoder.js var require_pass_through_decoder = __commonJS({ "../../node_modules/text-decoder/lib/pass-through-decoder.js"(exports, module) { var b4a = require_b4a(); module.exports = class PassThroughDecoder { constructor(encoding) { this.encoding = encoding; } get remaining() { return 0; } decode(data) { return b4a.toString(data, this.encoding); } flush() { return ""; } }; } }); // ../../node_modules/text-decoder/lib/utf8-decoder.js var require_utf8_decoder = __commonJS({ "../../node_modules/text-decoder/lib/utf8-decoder.js"(exports, module) { var b4a = require_b4a(); module.exports = class UTF8Decoder { constructor() { this._reset(); } get remaining() { return this.bytesSeen; } decode(data) { if (data.byteLength === 0) return ""; if (this.bytesNeeded === 0 && trailingIncomplete(data, 0) === 0) { this.bytesSeen = trailingBytesSeen(data); return b4a.toString(data, "utf8"); } let result = ""; let start = 0; if (this.bytesNeeded > 0) { while (start < data.byteLength) { const byte = data[start]; if (byte < this.lowerBoundary || byte > this.upperBoundary) { result += "\uFFFD"; this._reset(); break; } this.lowerBoundary = 128; this.upperBoundary = 191; this.codePoint = this.codePoint << 6 | byte & 63; this.bytesSeen++; start++; if (this.bytesSeen === this.bytesNeeded) { result += String.fromCodePoint(this.codePoint); this._reset(); break; } } if (this.bytesNeeded > 0) return result; } const trailing = trailingIncomplete(data, start); const end = data.byteLength - trailing; if (end > start) result += b4a.toString(data, "utf8", start, end); for (let i = end; i < data.byteLength; i++) { const byte = data[i]; if (this.bytesNeeded === 0) { if (byte <= 127) { this.bytesSeen = 0; result += String.fromCharCode(byte); } else if (byte >= 194 && byte <= 223) { this.bytesNeeded = 2; this.bytesSeen = 1; this.codePoint = byte & 31; } else if (byte >= 224 && byte <= 239) { if (byte === 224) this.lowerBoundary = 160; else if (byte === 237) this.upperBoundary = 159; this.bytesNeeded = 3; this.bytesSeen = 1; this.codePoint = byte & 15; } else if (byte >= 240 && byte <= 244) { if (byte === 240) this.lowerBoundary = 144; else if (byte === 244) this.upperBoundary = 143; this.bytesNeeded = 4; this.bytesSeen = 1; this.codePoint = byte & 7; } else { this.bytesSeen = 1; result += "\uFFFD"; } continue; } if (byte < this.lowerBoundary || byte > this.upperBoundary) { result += "\uFFFD"; i--; this._reset(); continue; } this.lowerBoundary = 128; this.upperBoundary = 191; this.codePoint = this.codePoint << 6 | byte & 63; this.bytesSeen++; if (this.bytesSeen === this.bytesNeeded) { result += String.fromCodePoint(this.codePoint); this._reset(); } } return result; } flush() { const result = this.bytesNeeded > 0 ? "\uFFFD" : ""; this._reset(); return result; } _reset() { this.codePoint = 0; this.bytesNeeded = 0; this.bytesSeen = 0; this.lowerBoundary = 128; this.upperBoundary = 191; } }; function trailingIncomplete(data, start) { const len = data.byteLength; if (len <= start) return 0; const limit = Math.max(start, len - 4); let i = len - 1; while (i > limit && (data[i] & 192) === 128) i--; if (i < start) return 0; const byte = data[i]; let needed; if (byte <= 127) return 0; if (byte >= 194 && byte <= 223) needed = 2; else if (byte >= 224 && byte <= 239) needed = 3; else if (byte >= 240 && byte <= 244) needed = 4; else return 0; const available = len - i; return available < needed ? available : 0; } function trailingBytesSeen(data) { const len = data.byteLength; if (len === 0) return 0; const last = data[len - 1]; if (last <= 127) return 0; if ((last & 192) !== 128) return 1; const limit = Math.max(0, len - 4); let i = len - 2; while (i >= limit && (data[i] & 192) === 128) i--; if (i < 0) return 1; const first = data[i]; let needed; if (first >= 194 && first <= 223) needed = 2; else if (first >= 224 && first <= 239) needed = 3; else if (first >= 240 && first <= 244) needed = 4; else return 1; if (len - i !== needed) return 1; if (needed >= 3) { const second = data[i + 1]; if (first === 224 && second < 160) return 1; if (first === 237 && second > 159) return 1; if (first === 240 && second < 144) return 1; if (first === 244 && second > 143) return 1; } return 0; } } }); // ../../node_modules/text-decoder/index.js var require_text_decoder = __commonJS({ "../../node_modules/text-decoder/index.js"(exports, module) { var PassThroughDecoder = require_pass_through_decoder(); var UTF8Decoder = require_utf8_decoder(); module.exports = class TextDecoder { constructor(encoding = "utf8") { this.encoding = normalizeEncoding(encoding); switch (this.encoding) { case "utf8": this.decoder = new UTF8Decoder(); break; case "utf16le": case "base64": throw new Error("Unsupported encoding: " + this.encoding); default: this.decoder = new PassThroughDecoder(this.encoding); } } get remaining() { return this.decoder.remaining; } push(data) { if (typeof data === "string") return data; return this.decoder.decode(data); } // For Node.js compatibility write(data) { return this.push(data); } end(data) { let result = ""; if (data) result = this.push(data); result += this.decoder.flush(); return result; } }; function normalizeEncoding(encoding) { encoding = encoding.toLowerCase(); switch (encoding) { case "utf8": case "utf-8": return "utf8"; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return "utf16le"; case "latin1": case "binary": return "latin1"; case "base64": case "ascii": case "hex": return encoding; default: throw new Error("Unknown encoding: " + encoding); } } } }); // ../../node_modules/streamx/lib/errors.js var require_errors3 = __commonJS({ "../../node_modules/streamx/lib/errors.js"(exports, module) { module.exports = class StreamError extends Error { constructor(msg, code, fn = StreamError) { super(msg); this.code = code; if (Error.captureStackTrace) { Error.captureStackTrace(this, fn); } } static isStreamDestroyed(err) { return err && err.code === "STREAM_DESTROYED"; } static isPrematureClose(err) { return err && err.code === "PREMATURE_CLOSE"; } static isAborted(err) { return err && err.code === "ABORTED"; } static isBadArgument(err) { return err && err.code === "BAD_ARGUMENT"; } get name() { return "StreamError"; } static STREAM_DESTROYED() { return new StreamError("Stream was destroyed", "STREAM_DESTROYED", StreamError.STREAM_DESTROYED); } static PREMATURE_CLOSE(msg = "Premature close") { return new StreamError(msg, "PREMATURE_CLOSE", StreamError.PREMATURE_CLOSE); } static ABORTED() { return new StreamError("Stream aborted", "ABORTED", StreamError.ABORTED); } static BAD_ARGUMENT(msg = "Bad argument") { return new StreamError(msg, "BAD_ARGUMENT", StreamError.BAD_ARGUMENT); } }; } }); // ../../node_modules/streamx/index.js var require_streamx = __commonJS({ "../../node_modules/streamx/index.js"(exports, module) { var { EventEmitter } = require_default(); var FIFO = require_fast_fifo(); var TextDecoder = require_text_decoder(); var StreamError = require_errors3(); var qmt = typeof queueMicrotask === "undefined" ? (fn) => global.process.nextTick(fn) : queueMicrotask; var MAX = (1 << 29) - 1; var OPENING = 1; var PREDESTROYING = 2; var DESTROYING = 4; var DESTROYED = 8; var NOT_OPENING = MAX ^ OPENING; var NOT_PREDESTROYING = MAX ^ PREDESTROYING; var READ_ACTIVE = 1 << 4; var READ_UPDATING = 2 << 4; var READ_PRIMARY = 4 << 4; var READ_QUEUED = 8 << 4; var READ_RESUMED = 16 << 4; var READ_PIPE_DRAINED = 32 << 4; var READ_ENDING = 64 << 4; var READ_EMIT_DATA = 128 << 4; var READ_EMIT_READABLE = 256 << 4; var READ_EMITTED_READABLE = 512 << 4; var READ_DONE = 1024 << 4; var READ_NEXT_TICK = 2048 << 4; var READ_NEEDS_PUSH = 4096 << 4; var READ_READ_AHEAD = 8192 << 4; var READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED; var READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH; var READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE; var READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED; var READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD; var READ_NOT_ACTIVE = MAX ^ READ_ACTIVE; var READ_NON_PRIMARY = MAX ^ READ_PRIMARY; var READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH); var READ_PUSHED = MAX ^ READ_NEEDS_PUSH; var READ_PAUSED = MAX ^ READ_RESUMED; var READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE); var READ_NOT_ENDING = MAX ^ READ_ENDING; var READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING; var READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK; var READ_NOT_UPDATING = MAX ^ READ_UPDATING; var READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD; var READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD; var WRITE_ACTIVE = 1 << 18; var WRITE_UPDATING = 2 << 18; var WRITE_PRIMARY = 4 << 18; var WRITE_QUEUED = 8 << 18; var WRITE_UNDRAINED = 16 << 18; var WRITE_DONE = 32 << 18; var WRITE_EMIT_DRAIN = 64 << 18; var WRITE_NEXT_TICK = 128 << 18; var WRITE_WRITING = 256 << 18; var WRITE_FINISHING = 512 << 18; var WRITE_CORKED = 1024 << 18; var WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING); var WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY; var WRITE_NOT_FINISHING = MAX ^ (WRITE_ACTIVE | WRITE_FINISHING); var WRITE_DRAINED = MAX ^ WRITE_UNDRAINED; var WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED; var WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK; var WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING; var WRITE_NOT_CORKED = MAX ^ WRITE_CORKED; var ACTIVE = READ_ACTIVE | WRITE_ACTIVE; var NOT_ACTIVE = MAX ^ ACTIVE; var DONE = READ_DONE | WRITE_DONE; var DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING; var OPEN_STATUS = DESTROY_STATUS | OPENING; var AUTO_DESTROY = DESTROY_STATUS | DONE; var NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY; var ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK; var TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE; var IS_OPENING = OPEN_STATUS | TICKING; var READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE; var READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED; var READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED; var READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE; var SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD; var READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE; var READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY; var READ_NEXT_TICK_OR_OPENING = READ_NEXT_TICK | OPENING; var WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE; var WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED; var WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE; var WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE; var WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED; var WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE; var WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING; var WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE; var WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE; var WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY; var WRITE_DROP_DATA = WRITE_FINISHING | WRITE_DONE | DESTROY_STATUS; var asyncIterator = Symbol.asyncIterator || Symbol("asyncIterator"); var WritableState = class { constructor(stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) { this.stream = stream; this.queue = new FIFO(); this.highWaterMark = highWaterMark; this.buffered = 0; this.error = null; this.pipeline = null; this.drains = null; this.byteLength = byteLengthWritable || byteLength || defaultByteLength; this.map = mapWritable || map; this.afterWrite = afterWrite.bind(this); this.afterUpdateNextTick = updateWriteNT.bind(this); } get ending() { return (this.stream._duplexState & WRITE_FINISHING) !== 0; } get ended() { return (this.stream._duplexState & WRITE_DONE) !== 0; } push(data) { if ((this.stream._duplexState & WRITE_DROP_DATA) !== 0) return false; if (this.map !== null) data = this.map(data); this.buffered += this.byteLength(data); this.queue.push(data); if (this.buffered < this.highWaterMark) { this.stream._duplexState |= WRITE_QUEUED; return true; } this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED; return false; } shift() { const data = this.queue.shift(); this.buffered -= this.byteLength(data); if (this.buffered === 0) this.stream._duplexState &= WRITE_NOT_QUEUED; return data; } end(data) { if (typeof data === "function") { this.stream.once("finish", data); } else if (data !== void 0 && data !== null) { this.push(data); } this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY; } autoBatch(data, cb) { const buffer = []; const stream = this.stream; buffer.push(data); while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) { buffer.push(stream._writableState.shift()); } if ((stream._duplexState & OPEN_STATUS) !== 0) return cb(null); stream._writev(buffer, cb); } update() { const stream = this.stream; stream._duplexState |= WRITE_UPDATING; do { while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) { const data = this.shift(); stream._duplexState |= WRITE_ACTIVE_AND_WRITING; stream._write(data, this.afterWrite); } if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary(); } while (this.continueUpdate() === true); stream._duplexState &= WRITE_NOT_UPDATING; } updateNonPrimary() { const stream = this.stream; if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) { stream._duplexState = stream._duplexState | WRITE_ACTIVE; stream._final(afterFinal.bind(this)); return; } if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) { if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) { stream._duplexState |= ACTIVE; stream._destroy(afterDestroy.bind(this)); } return; } if ((stream._duplexState & IS_OPENING) === OPENING) { stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING; stream._open(afterOpen.bind(this)); } } continueUpdate() { if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) return false; this.stream._duplexState &= WRITE_NOT_NEXT_TICK; return true; } updateCallback() { if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) { this.update(); } else { this.updateNextTick(); } } updateNextTick() { if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) return; this.stream._duplexState |= WRITE_NEXT_TICK; if ((this.stream._duplexState & WRITE_UPDATING) === 0) qmt(this.afterUpdateNextTick); } }; var ReadableState = class { constructor(stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) { this.stream = stream; this.queue = new FIFO(); this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark; this.buffered = 0; this.readAhead = highWaterMark > 0; this.error = null; this.pipeline = null; this.byteLength = byteLengthReadable || byteLength || defaultByteLength; this.map = mapReadable || map; this.pipeTo = null; this.afterRead = afterRead.bind(this); this.afterUpdateNextTick = updateReadNT.bind(this); } get ending() { return (this.stream._duplexState & READ_ENDING) !== 0; } get ended() { return (this.stream._duplexState & READ_DONE) !== 0; } pipe(pipeTo, cb) { if (this.pipeTo !== null) throw StreamError.BAD_ARGUMENT("Can only pipe to one destination"); if (typeof cb !== "function") cb = null; this.stream._duplexState |= READ_PIPE_DRAINED; this.pipeTo = pipeTo; this.pipeline = new Pipeline(this.stream, pipeTo, cb); if (cb) this.stream.on("error", noop); if (isStreamx(pipeTo)) { pipeTo._writableState.pipeline = this.pipeline; if (cb) pipeTo.on("error", noop); pipeTo.on("finish", this.pipeline.finished.bind(this.pipeline)); } else { const onerror = this.pipeline.done.bind(this.pipeline, pipeTo); const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null); pipeTo.on("error", onerror); pipeTo.on("close", onclose); pipeTo.on("finish", this.pipeline.finished.bind(this.pipeline)); } pipeTo.on("drain", afterDrain.bind(this)); this.stream.emit("piping", pipeTo); pipeTo.emit("pipe", this.stream); } push(data) { const stream = this.stream; if (data === null) { this.highWaterMark = 0; stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED; return false; } if (this.map !== null) { data = this.map(data); if (data === null) { stream._duplexState &= READ_PUSHED; return this.buffered < this.highWaterMark; } } this.buffered += this.byteLength(data); this.queue.push(data); stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED; return this.buffered < this.highWaterMark; } shift() { const data = this.queue.shift(); this.buffered -= this.byteLength(data); if (this.buffered === 0) { this.stream._duplexState &= READ_NOT_QUEUED; } return data; } unshift(data) { const pending = [this.map !== null ? this.map(data) : data]; while (this.buffered > 0) pending.push(this.shift()); for (let i = 0; i < pending.length - 1; i++) { const data2 = pending[i]; this.buffered += this.byteLength(data2); this.queue.push(data2); } this.push(pending[pending.length - 1]); } read() { const stream = this.stream; if ((stream._duplexState & READ_STATUS) === READ_QUEUED) { const data = this.shift(); if (this.pipeTo !== null && this.pipeTo.write(data) === false) { stream._duplexState &= READ_PIPE_NOT_DRAINED; } if ((stream._duplexState & READ_EMIT_DATA) !== 0) { stream.emit("data", data); } return data; } if (this.readAhead === false) { stream._duplexState |= READ_READ_AHEAD; this.updateNextTick(); } return null; } drain() { const stream = this.stream; while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) { const data = this.shift(); if (this.pipeTo !== null && this.pipeTo.write(data) === false) { stream._duplexState &= READ_PIPE_NOT_DRAINED; } if ((stream._duplexState & READ_EMIT_DATA) !== 0) { stream.emit("data", data); } } } update() { const stream = this.stream; stream._duplexState |= READ_UPDATING; do { this.drain(); while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) { stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH; stream._read(this.afterRead); this.drain(); } if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) { stream._duplexState |= READ_EMITTED_READABLE; stream.emit("readable"); } if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) { this.updateNonPrimary(); } } while (this.continueUpdate() === true); stream._duplexState &= READ_NOT_UPDATING; } updateNonPrimary() { const stream = this.stream; if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) { stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING; stream.emit("end"); if ((stream._duplexState & AUTO_DESTROY) === DONE) { stream._duplexState |= DESTROYING; } if (this.pipeTo !== null) { this.pipeTo.end(); } } if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) { if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) { stream._duplexState |= ACTIVE; stream._destroy(afterDestroy.bind(this)); } return; } if ((stream._duplexState & IS_OPENING) === OPENING) { stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING; stream._open(afterOpen.bind(this)); } } continueUpdate() { if ((this.stream._duplexState & READ_NEXT_TICK) === 0) return false; this.stream._duplexState &= READ_NOT_NEXT_TICK; return true; } updateCallback() { if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) { this.update(); } else { this.updateNextTick(); } } updateNextTickIfOpen() { if ((this.stream._duplexState & READ_NEXT_TICK_OR_OPENING) !== 0) return; this.stream._duplexState |= READ_NEXT_TICK; if ((this.stream._duplexState & READ_UPDATING) === 0) qmt(this.afterUpdateNextTick); } updateNextTick() { if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return; this.stream._duplexState |= READ_NEXT_TICK; if ((this.stream._duplexState & READ_UPDATING) === 0) qmt(this.afterUpdateNextTick); } }; var TransformState = class { constructor(stream) { this.data = null; this.afterTransform = afterTransform.bind(stream); this.afterFinal = null; } }; var Pipeline = class { constructor(src, dst, cb) { this.from = src; this.to = dst; this.afterPipe = cb; this.error = null; this.pipeToFinished = false; } finished() { this.pipeToFinished = true; } done(stream, err) { if (err) this.error = err; if (stream === this.to) { this.to = null; if (this.from !== null) { if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) { this.from.destroy(this.error || StreamError.PREMATURE_CLOSE("Writable stream closed")); } return; } } if (stream === this.from) { this.from = null; if (this.to !== null) { if ((stream._duplexState & READ_DONE) === 0) { this.to.destroy(this.error || StreamError.PREMATURE_CLOSE("Readable stream closed")); } return; } } if (this.afterPipe !== null) this.afterPipe(this.error); this.to = this.from = this.afterPipe = null; } }; function afterDrain() { this.stream._duplexState |= READ_PIPE_DRAINED; this.updateCallback(); } function afterFinal(err) { const stream = this.stream; if (err) stream.destroy(err); if ((stream._duplexState & DESTROY_STATUS) === 0) { stream._duplexState |= WRITE_DONE; stream.emit("finish"); } if ((stream._duplexState & AUTO_DESTROY) === DONE) { stream._duplexState |= DESTROYING; } stream._duplexState &= WRITE_NOT_FINISHING; if ((stream._duplexState & WRITE_UPDATING) === 0) { this.update(); } else { this.updateNextTick(); } } function afterDestroy(err) { const stream = this.stream; if (!err && !StreamError.isStreamDestroyed(this.error)) err = this.error; if (err) stream.emit("error", err); stream._duplexState |= DESTROYED; stream.emit("close"); const rs = stream._readableState; const ws = stream._writableState; if (rs !== null && rs.pipeline !== null) { rs.pipeline.done(stream, err); } if (ws !== null) { while (ws.drains !== null && ws.drains.length > 0) { ws.drains.shift().resolve(false); } if (ws.pipeline !== null) { ws.pipeline.done(stream, err); } } } function afterWrite(err) { const stream = this.stream; if (err) stream.destroy(err); stream._duplexState &= WRITE_NOT_ACTIVE; if (this.drains !== null) tickDrains(this.drains); if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) { stream._duplexState &= WRITE_DRAINED; if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) { stream.emit("drain"); } } this.updateCallback(); } function afterRead(err) { if (err) this.stream.destroy(err); this.stream._duplexState &= READ_NOT_ACTIVE; if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) { this.stream._duplexState &= READ_NO_READ_AHEAD; } this.updateCallback(); } function updateReadNT() { if ((this.stream._duplexState & READ_UPDATING) === 0) { this.stream._duplexState &= READ_NOT_NEXT_TICK; this.update(); } } function updateWriteNT() { if ((this.stream._duplexState & WRITE_UPDATING) === 0) { this.stream._duplexState &= WRITE_NOT_NEXT_TICK; this.update(); } } function tickDrains(drains) { for (let i = 0; i < drains.length; i++) { if (--drains[i].writes === 0) { drains.shift().resolve(true); i--; } } } function afterOpen(err) { const stream = this.stream; if (err) stream.destroy(err); if ((stream._duplexState & DESTROYING) === 0) { if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) { stream._duplexState |= READ_PRIMARY; } if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) { stream._duplexState |= WRITE_PRIMARY; } stream.emit("open"); } stream._duplexState &= NOT_ACTIVE; if (stream._writableState !== null) { stream._writableState.updateCallback(); } if (stream._readableState !== null) { stream._readableState.updateCallback(); } } function afterTransform(err, data) { if (data !== void 0 && data !== null) this.push(data); this._writableState.afterWrite(err); } function newListener(name) { if (this._readableState !== null) { if (name === "data") { this._duplexState |= READ_EMIT_DATA | READ_RESUMED_READ_AHEAD; this._readableState.updateNextTick(); } if (name === "readable") { this._duplexState |= READ_EMIT_READABLE; this._readableState.updateNextTick(); } } if (this._writableState !== null) { if (name === "drain") { this._duplexState |= WRITE_EMIT_DRAIN; this._writableState.updateNextTick(); } } } var Stream = class extends EventEmitter { constructor(opts) { super(); this._duplexState = 0; this._readableState = null; this._writableState = null; if (opts) { if (opts.open) this._open = opts.open; if (opts.destroy) this._destroy = opts.destroy; if (opts.predestroy) this._predestroy = opts.predestroy; if (opts.signal) opts.signal.addEventListener("abort", abort.bind(this)); } this.on("newListener", newListener); } _open(cb) { cb(null); } _destroy(cb) { cb(null); } _predestroy() { } get readable() { return this._readableState !== null ? true : void 0; } get writable() { return this._writableState !== null ? true : void 0; } get destroyed() { return (this._duplexState & DESTROYED) !== 0; } get destroying() { return (this._duplexState & DESTROY_STATUS) !== 0; } destroy(err) { if ((this._duplexState & DESTROY_STATUS) === 0) { if (!err) err = StreamError.STREAM_DESTROYED(); this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY; if (this._readableState !== null) { this._readableState.highWaterMark = 0; this._readableState.error = err; } if (this._writableState !== null) { this._writableState.highWaterMark = 0; this._writableState.error = err; } this._duplexState |= PREDESTROYING; this._predestroy(); this._duplexState &= NOT_PREDESTROYING; if (this._readableState !== null) { this._readableState.updateNextTick(); } if (this._writableState !== null) { this._writableState.updateNextTick(); } } } }; var Readable = class _Readable extends Stream { constructor(opts) { super(opts); this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD; this._readableState = new ReadableState(this, opts); if (opts) { if (this._readableState.readAhead === false) this._duplexState &= READ_NO_READ_AHEAD; if (opts.read) this._read = opts.read; if (opts.eagerOpen) this._readableState.updateNextTick(); if (opts.encoding) this.setEncoding(opts.encoding); } } static deferred(fn, opts) { const out = new PassThrough(opts); fn().then((src) => { if (src === null) return out.end(); if (out.destroying) return; pipeline(src, out, noop); }).catch((err) => out.destroy(err)); return out; } setEncoding(encoding) { const dec = new TextDecoder(encoding); const map = this._readableState.map || echo; this._readableState.map = mapOrSkip; return this; function mapOrSkip(data) { const next = dec.push(data); return next === "" && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next); } } _read(cb) { cb(null); } pipe(dest, cb) { this._readableState.updateNextTick(); this._readableState.pipe(dest, cb); return dest; } read() { this._readableState.updateNextTick(); return this._readableState.read(); } push(data) { this._readableState.updateNextTickIfOpen(); return this._readableState.push(data); } unshift(data) { this._readableState.updateNextTickIfOpen(); return this._readableState.unshift(data); } resume() { this._duplexState |= READ_RESUMED_READ_AHEAD; this._readableState.updateNextTick(); return this; } pause() { this._duplexState &= this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED; return this; } static _fromAsyncIterator(ite, opts) { let destroy; const rs = new _Readable({ ...opts, read(cb) { ite.next().then(push).then(cb.bind(null, null)).catch(cb); }, predestroy() { destroy = ite.return(); }, destroy(cb) { if (!destroy) return cb(null); destroy.then(cb.bind(null, null)).catch(cb); } }); return rs; function push(data) { if (data.done) rs.push(null); else rs.push(data.value); } } static from(data, opts) { if (isReadStreamx(data)) return data; if (data[asyncIterator]) return this._fromAsyncIterator(data[asyncIterator](), opts); if (!Array.isArray(data)) data = data === void 0 ? [] : [data]; let i = 0; return new _Readable({ ...opts, read(cb) { this.push(i === data.length ? null : data[i++]); cb(null); } }); } static isBackpressured(rs) { return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark; } static isPaused(rs) { return (rs._duplexState & READ_RESUMED) === 0; } [asyncIterator]() { const stream = this; let error = null; let promiseResolve = null; let promiseReject = null; this.on("error", (err) => { error = err; }); this.on("readable", onreadable); this.on("close", onclose); return { [asyncIterator]() { return this; }, next() { return new Promise(function(resolve, reject) { promiseResolve = resolve; promiseReject = reject; const data = stream.read(); if (data !== null) ondata(data); else if ((stream._duplexState & DESTROYED) !== 0) ondata(null); }); }, return() { return destroy(null); }, throw(err) { return destroy(err); } }; function onreadable() { if (promiseResolve !== null) ondata(stream.read()); } function onclose() { if (promiseResolve !== null) ondata(null); } function ondata(data) { if (promiseReject === null) return; if (error) { promiseReject(error); } else if (data === null && (stream._duplexState & READ_DONE) === 0) { promiseReject(StreamError.STREAM_DESTROYED()); } else { promiseResolve({ value: data, done: data === null }); } promiseReject = promiseResolve = null; } function destroy(err) { stream.destroy(err); return new Promise((resolve, reject) => { if (stream._duplexState & DESTROYED) return resolve({ value: void 0, done: true }); stream.once("close", function() { if (err) reject(err); else resolve({ value: void 0, done: true }); }); }); } } }; var Writable = class extends Stream { constructor(opts) { super(opts); this._duplexState |= OPENING | READ_DONE; this._writableState = new WritableState(this, opts); if (opts) { if (opts.writev) this._writev = opts.writev; if (opts.write) this._write = opts.write; if (opts.final) this._final = opts.final; if (opts.eagerOpen) this._writableState.updateNextTick(); } } cork() { this._duplexState |= WRITE_CORKED; } uncork() { this._duplexState &= WRITE_NOT_CORKED; this._writableState.updateNextTick(); } _writev(batch, cb) { cb(null); } _write(data, cb) { this._writableState.autoBatch(data, cb); } _final(cb) { cb(null); } static isBackpressured(ws) { return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0; } static drained(ws) { if (ws.destroyed) return Promise.resolve(false); const state = ws._writableState; const pending = isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length; const writes = pending + (ws._duplexState & WRITE_WRITING ? 1 : 0); if (writes === 0) return Promise.resolve(true); if (state.drains === null) state.drains = []; return new Promise((resolve) => { state.drains.push({ writes, resolve }); }); } write(data) { this._writableState.updateNextTick(); return this._writableState.push(data); } end(data) { this._writableState.updateNextTick(); this._writableState.end(data); return this; } }; var Duplex = class extends Readable { // and Writable constructor(opts) { super(opts); this._duplexState = OPENING | this._duplexState & READ_READ_AHEAD; this._writableState = new WritableState(this, opts); if (opts) { if (opts.writev) this._writev = opts.writev; if (opts.write) this._write = opts.write; if (opts.final) this._final = opts.final; } } cork() { this._duplexState |= WRITE_CORKED; } uncork() { this._duplexState &= WRITE_NOT_CORKED; this._writableState.updateNextTick(); } _writev(batch, cb) { cb(null); } _write(data, cb) { this._writableState.autoBatch(data, cb); } _final(cb) { cb(null); } write(data) { this._writableState.updateNextTick(); return this._writableState.push(data); } end(data) { this._writableState.updateNextTick(); this._writableState.end(data); return this; } }; var Transform = class extends Duplex { constructor(opts) { super(opts); this._transformState = new TransformState(this); if (opts) { if (opts.transform) this._transform = opts.transform; if (opts.flush) this._flush = opts.flush; } } _write(data, cb) { if (this._readableState.buffered >= this._readableState.highWaterMark) { this._transformState.data = data; } else { this._transform(data, this._transformState.afterTransform); } } _read(cb) { if (this._transformState.data !== null) { const data = this._transformState.data; this._transformState.data = null; cb(null); this._transform(data, this._transformState.afterTransform); } else { cb(null); } } destroy(err) { super.destroy(err); if (this._transformState.data !== null) { this._transformState.data = null; this._transformState.afterTransform(); } } _transform(data, cb) { cb(null, data); } _flush(cb) { cb(null); } _final(cb) { this._transformState.afterFinal = cb; this._flush(transformAfterFlush.bind(this)); } }; var PassThrough = class extends Transform { }; function transformAfterFlush(err, data) { const cb = this._transformState.afterFinal; if (err) return cb(err); if (data !== null && data !== void 0) this.push(data); this.push(null); cb(null); } function pipelinePromise(...streams) { return new Promise((resolve, reject) => { return pipeline(...streams, (err) => { if (err) return reject(err); resolve(); }); }); } function pipeline(stream, ...streams) { const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]; const done = all.length && typeof all[all.length - 1] === "function" ? all.pop() : null; if (all.length < 2) throw StreamError.BAD_ARGUMENT("Pipeline requires at least 2 streams"); let src = all[0]; let dest = null; let error = null; for (let i = 1; i < all.length; i++) { dest = all[i]; if (isStreamx(src)) { src.pipe(dest, onerror); } else { errorHandle(src, true, i > 1, onerror); src.pipe(dest); } src = dest; } if (done) { let fin = false; const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy); dest.on("error", (err) => { if (error === null) error = err; }); dest.on("finish", () => { fin = true; if (!autoDestroy) done(error); }); if (autoDestroy) { dest.on("close", () => done(error || (fin ? null : StreamError.PREMATURE_CLOSE()))); } } return dest; function errorHandle(s, rd, wr, onerror2) { s.on("error", onerror2); s.on("close", onclose); function onclose() { if (rd && s._readableState && !s._readableState.ended) { return onerror2(StreamError.PREMATURE_CLOSE()); } if (wr && s._writableState && !s._writableState.ended) { return onerror2(StreamError.PREMATURE_CLOSE()); } } } function onerror(err) { if (!err || error) return; error = err; for (const s of all) { s.destroy(err); } } } function echo(s) { return s; } function isStream(stream) { return !!stream._readableState || !!stream._writableState; } function isStreamx(stream) { return typeof stream._duplexState === "number" && isStream(stream); } function isEnding(stream) { return !!stream._readableState && stream._readableState.ending; } function isEnded(stream) { return !!stream._readableState && stream._readableState.ended; } function isFinishing(stream) { return !!stream._writableState && stream._writableState.ending; } function isFinished(stream) { return !!stream._writableState && stream._writableState.ended; } function getStreamError(stream, opts = {}) { const err = stream._readableState && stream._readableState.error || stream._writableState && stream._writableState.error; return !opts.all && StreamError.isStreamDestroyed(err) ? null : err; } function isReadStreamx(stream) { return isStreamx(stream) && stream.readable; } function isDisturbed(stream) { return (stream._duplexState & OPENING) !== OPENING || (stream._duplexState & DESTROYING) === DESTROYING || (stream._duplexState & ACTIVE_OR_TICKING) !== 0; } function isTypedArray(data) { return typeof data === "object" && data !== null && typeof data.byteLength === "number"; } function defaultByteLength(data) { return isTypedArray(data) ? data.byteLength : 1024; } function noop() { } function abort() { this.destroy(StreamError.ABORTED()); } function isWritev(s) { return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev; } module.exports = { pipeline, pipelinePromise, isStream, isStreamx, isEnding, isEnded, isFinishing, isFinished, isDisturbed, getStreamError, Stream, Writable, Readable, Duplex, Transform, // Export PassThrough for compatibility with Node.js core's stream module PassThrough }; } }); // ../../node_modules/teex/index.js var require_teex = __commonJS({ "../../node_modules/teex/index.js"(exports, module) { var { Readable } = require_streamx(); module.exports = function(s, forks = 2) { const streams = new Array(forks); const status = new Array(forks).fill(true); let ended = false; for (let i = 0; i < forks; i++) { streams[i] = new Readable({ read(cb) { const check = !status[i]; status[i] = true; if (check && allReadable()) s.resume(); cb(null); } }); } s.on("end", function() { ended = true; for (const stream of streams) stream.push(null); }); s.on("error", function(err) { for (const stream of streams) stream.destroy(err); }); s.on("close", function() { if (ended) return; for (const stream of streams) stream.destroy(); }); s.on("data", function(data) { let needsPause = false; for (let i = 0; i < streams.length; i++) { if (!(status[i] = streams[i].push(data))) { needsPause = true; } } if (needsPause) s.pause(); }); return streams; function allReadable() { for (let j = 0; j < status.length; j++) { if (!status[j]) return false; } return true; } }; } }); // ../../node_modules/bare-stream/web.js var require_web = __commonJS({ "../../node_modules/bare-stream/web.js"(exports) { var { Readable, Writable, Transform, getStreamError, isStreamx, isDisturbed } = require_streamx(); var tee = require_teex(); var readableKind = Symbol.for("bare.stream.readable.kind"); var writableKind = Symbol.for("bare.stream.writable.kind"); var transformKind = Symbol.for("bare.stream.transform.kind"); exports.ReadableStreamDefaultReader = class ReadableStreamDefaultReader { constructor(stream) { this._stream = stream; this._stream._stream.once("close", onclose).once("error", onerror); const closed = Promise.withResolvers(); closed.promise.catch(noop); this._closed = closed; function onclose() { closed.resolve(); } function onerror(err) { closed.reject(err); } } get closed() { return this._closed.promise; } read() { const stream = this._stream._stream; return new Promise((resolve, reject) => { const err = getStreamError(stream); if (err) return reject(err); if (stream.destroyed) { return resolve({ value: void 0, done: true }); } const value = stream.read(); if (value !== null) { return resolve({ value, done: false }); } stream.once("readable", onreadable).once("close", onclose).once("error", onerror); function onreadable() { const value2 = stream.read(); ondone(null, value2 === null ? { value: void 0, done: true } : { value: value2, done: false }); } function onclose() { ondone(null, { value: void 0, done: true }); } function onerror(err2) { ondone(err2, null); } function ondone(err2, value2) { stream.off("readable", onreadable).off("close", onclose).off("error", onerror); if (err2) reject(err2); else resolve(value2); } }); } releaseLock() { this._closed.reject(new TypeError("Reader was released")); this._stream._releaseLock(); this._stream = null; } cancel(reason = new TypeError("Stream was cancelled")) { const stream = this._stream._stream; if (stream.destroyed) return Promise.resolve(); return new Promise( (resolve) => stream.once("close", resolve).once("error", noop).destroy(reason) ); } }; exports.ReadableStreamDefaultController = class ReadableStreamDefaultController { constructor(stream) { this._stream = stream; } get desiredSize() { const stream = this._stream._stream; return stream._readableState.highWaterMark - stream._readableState.buffered; } enqueue(data) { this._stream._stream.push(data); } close() { this._stream._stream.push(null); } error(err) { this._stream._stream.destroy(err); } }; var ReadableStream = class _ReadableStream { static get [readableKind]() { return 0; } static from(iterable) { return new _ReadableStream(Readable.from(iterable)); } constructor(underlyingSource = {}, queuingStrategy) { if (isStreamx(underlyingSource)) { this._stream = underlyingSource; } else { if (queuingStrategy === void 0) { queuingStrategy = new exports.CountQueuingStrategy(); } const { start, pull, cancel } = underlyingSource; const { highWaterMark = 1, size = defaultSize } = queuingStrategy; this._stream = new Readable({ highWaterMark, byteLength: size }); const controller = new exports.ReadableStreamDefaultController(this); try { let starting = Promise.resolve(); if (start) starting = forwardError(start.call(this, controller), controller); if (pull) { this._stream._read = this._read.bind(this, starting, pull.bind(this, controller)); } if (cancel) { this._stream.once("error", cancel.bind(this)); } } catch (err) { controller.error(err); } } this._reader = null; } get [readableKind]() { return _ReadableStream[readableKind]; } get locked() { return this._reader !== null; } getReader() { if (this.locked) throw new TypeError("Stream is locked"); this._reader = new exports.ReadableStreamDefaultReader(this); return this._reader; } cancel(reason = new TypeError("Stream was cancelled")) { const stream = this._stream; if (stream.destroyed) return Promise.resolve(); if (this.locked) return Promise.reject(new TypeError("Stream is locked")); return new Promise( (resolve) => stream.once("close", resolve).once("error", noop).destroy(reason) ); } tee() { const [a, b] = tee(this._stream); return [new _ReadableStream(a), new _ReadableStream(b)]; } pipeTo(destination) { return new Promise( (resolve, reject) => this._stream.pipe(destination._stream, (err) => { err ? reject(err) : resolve(); }) ); } [Symbol.asyncIterator]() { return this._stream[Symbol.asyncIterator](); } _releaseLock() { this._reader = null; } async _read(starting, pull, cb) { await starting; let err = null; try { await pull(); } catch (e) { err = e; } cb(err); } }; function defaultSize() { return 1; } exports.ReadableStream = ReadableStream; exports.CountQueuingStrategy = class CountQueuingStrategy { constructor(opts = {}) { const { highWaterMark = 1 } = opts; this.highWaterMark = highWaterMark; } size(chunk) { return 1; } }; exports.ByteLengthQueuingStrategy = class ByteLengthQueuingStrategy { constructor(opts = {}) { const { highWaterMark = 16384 } = opts; this.highWaterMark = highWaterMark; } size(chunk) { return chunk.byteLength; } }; exports.isReadableStream = function isReadableStream(value) { if (value instanceof ReadableStream) return true; return typeof value === "object" && value !== null && value[readableKind] === ReadableStream[readableKind]; }; exports.isReadableStreamErrored = function isReadableStreamErrored(stream) { return getStreamError(stream._stream) !== null; }; exports.isReadableStreamDisturbed = function isReadableStreamDisturbed(stream) { return isDisturbed(stream._stream); }; exports.WritableStreamDefaultWriter = class WritableStreamDefaultWriter { constructor(stream) { this._stream = stream; this._stream._stream.once("close", onclose).once("error", onerror); const closed = Promise.withResolvers(); closed.promise.catch(noop); this._closed = closed; function onclose() { closed.resolve(); } function onerror(err) { closed.reject(err); } } get desiredSize() { const stream = this._stream._stream; return stream._writableState.highWaterMark - stream._writableState.buffered; } get closed() { return this._closed.promise; } get ready() { const stream = this._stream._stream; if (getStreamError(stream)) return Promise.reject(); return Writable.drained(stream).then(); } async write(chunk) { const stream = this._stream._stream; let err = getStreamError(stream); if (err) return Promise.reject(err); stream.write(chunk); await Writable.drained(stream); err = getStreamError(stream); if (err) return Promise.reject(err); } releaseLock() { this._closed.reject(new TypeError("Writer was released")); this._stream._releaseLock(); this._stream = null; } close() { const stream = this._stream._stream; if (stream.destroyed) return Promise.resolve(); return new Promise((resolve) => stream.once("close", resolve).end()); } abort(reason = new TypeError("Stream was aborted")) { const stream = this._stream._stream; if (stream.destroyed) return Promise.resolve(); return new Promise((resolve) => stream.once("close", resolve).destroy(reason)); } }; exports.WritableStreamDefaultController = class WritableStreamDefaultController { constructor(stream) { this._stream = stream; } error(err) { this._stream._stream.destroy(err); } }; var WritableStream = class _WritableStream { static get [writableKind]() { return 0; } constructor(underlyingSink = {}, queuingStrategy = {}) { if (isStreamx(underlyingSink)) { this._stream = underlyingSink; } else { if (queuingStrategy === void 0) { queuingStrategy = new exports.CountQueuingStrategy(); } const { start, write, close, abort } = underlyingSink; const { highWaterMark = 1, size = defaultSize } = queuingStrategy; this._stream = new Writable({ highWaterMark, byteLength: size }); const controller = new exports.WritableStreamDefaultController(this); this._controller = controller; try { let starting = Promise.resolve(); if (start) starting = forwardError(start.call(this, controller), controller); if (write) { this._stream._write = this._write.bind(this, starting, write.bind(this)); } if (close) { this._stream._destroy = this._destroy.bind(this, close.call(this)); } if (abort) { this._stream.once("error", abort.bind(this)); } } catch (err) { controller.error(err); } } this._writer = null; } get [writableKind]() { return _WritableStream[writableKind]; } get locked() { return this._writer !== null; } getWriter() { if (this.locked) throw new TypeError("Stream is locked"); this._writer = new exports.WritableStreamDefaultWriter(this); return this._writer; } abort(reason = new TypeError("Stream was aborted")) { if (this._stream.destroyed) return Promise.resolve(); if (this.locked) return Promise.reject(new TypeError("Stream is locked")); return new Promise((resolve) => this._stream.once("close", resolve).destroy(reason)); } close() { if (this._stream.destroyed) return Promise.resolve(); if (this.locked) return Promise.reject(new TypeError("Stream is locked")); return new Promise((resolve) => this._stream.once("close", resolve).end()); } _releaseLock() { this._writer = null; } async _write(starting, write, data, cb) { await starting; let err = null; try { await write(data, this._controller); } catch (e) { err = e; } cb(err); } async _destroy(closing, cb) { let err = null; try { await closing; } catch (e) { err = e; } cb(err); } }; exports.WritableStream = WritableStream; exports.isWritableStream = function isWritableStream(value) { if (value instanceof WritableStream) return true; return typeof value === "object" && value !== null && value[writableKind] === WritableStream[writableKind]; }; exports.TransformStreamDefaultController = class TransformStreamDefaultController { constructor(stream) { this._stream = stream; } get desiredSize() { const stream = this._stream._stream; return stream._readableState.highWaterMark - stream._readableState.buffered; } enqueue(data) { this._stream._stream.push(data); } error(err) { this._stream._stream.destroy(err); } terminate() { const stream = this._stream._stream; stream.push(null); stream.destroy(new TypeError("Stream has been terminated")); } }; var TransformStream = class _TransformStream { static get [transformKind]() { return 0; } constructor(transformer = {}, writableStrategy = {}, readableStrategy = {}) { if (isStreamx(transformer)) { this._stream = transformer; } else { const { start, transform, flush } = transformer; this._stream = new Transform({ ...writableStrategy, ...readableStrategy }); const controller = new exports.TransformStreamDefaultController(this); this._controller = controller; try { let starting = Promise.resolve(); if (start) starting = forwardError(start.call(this, controller), controller); if (transform) { this._stream._transform = this._transform.bind(this, starting, transform.bind(this)); } if (flush) { this._stream._flush = this._flush.bind(this, flush.call(this, this._controller)); } } catch (err) { controller.error(err); } } this._writable = new WritableStream(this._stream); this._readable = new ReadableStream(this._stream); } get [transformKind]() { return _TransformStream[transformKind]; } get writable() { return this._writable; } get readable() { return this._readable; } async _transform(starting, transform, data, cb) { await starting; let err = null; try { await transform(data, this._controller); } catch (e) { err = e; } cb(err); } async _flush(flush, cb) { let err = null; try { await flush; } catch (e) { err = e; } cb(err); } }; exports.TransformStream = TransformStream; exports.isTransformStream = function isTransformStream(value) { if (value instanceof TransformStream) return true; return typeof value === "object" && value !== null && value[transformKind] === TransformStream[transformKind]; }; async function forwardError(promise, controller) { try { await promise; } catch (err) { controller.error(err); } } function noop() { } } }); // ../../node_modules/bare-stream/index.js var require_bare_stream = __commonJS({ "../../node_modules/bare-stream/index.js"(exports, module) { var b4a = require_b4a(); var stream = require_streamx(); var { ReadableStream, WritableStream } = require_web(); var defaultEncoding = "utf8"; module.exports = exports = stream.Stream; exports.pipeline = stream.pipeline; exports.isStream = stream.isStream; exports.isEnding = stream.isEnding; exports.isEnded = stream.isEnded; exports.isFinishing = stream.isFinishing; exports.isFinished = stream.isFinished; exports.isDisturbed = stream.isDisturbed; exports.isErrored = function isErrored(stream2) { return exports.getStreamError(stream2) !== null; }; exports.isReadable = function isReadable(stream2) { return stream2.readable && !stream2.destroying && !exports.isEnded(stream2); }; exports.isWritable = function isWritable(stream2) { return stream2.writable && !stream2.destroying && !exports.isFinishing(stream2); }; exports.getStreamError = stream.getStreamError; exports.addAbortSignal = function addAbortSignal(signal, stream2) { function onAbort() { stream2.destroy(signal.reason); } if (signal.aborted) onAbort(); else signal.addEventListener("abort", onAbort); return stream2; }; exports.Stream = exports; exports.Readable = class Readable extends stream.Readable { constructor(opts = {}) { super({ ...opts, byteLength: null, byteLengthReadable: null, map: null, mapReadable: null }); if (this._construct) this._open = this._construct; if (this._read !== stream.Readable.prototype._read) { this._read = read.bind(this, this._read); } if (this._destroy !== stream.Stream.prototype._destroy) { this._destroy = destroy.bind(this, this._destroy); } } get closed() { return !exports.isReadable(this); } get errored() { return stream.getStreamError(this); } push(chunk, encoding) { if (typeof chunk === "string") { chunk = b4a.from(chunk, encoding || defaultEncoding); } return super.push(chunk); } unshift(chunk, encoding) { if (typeof chunk === "string") { chunk = b4a.from(chunk, encoding || defaultEncoding); } super.unshift(chunk); } static fromWeb(readableStream, opts = {}) { const stream2 = readableStream._stream; if (opts.encoding) stream2.setEncoding(opts.encoding); if (opts.signal) exports.addAbortSignal(opts.signal, stream2); return stream2; } static toWeb(readable, opts = {}) { return new ReadableStream(readable, opts.strategy); } async [Symbol.asyncDispose]() { if (!this.destroyed) this.destroy(); await new Promise((resolve) => exports.finished(this, resolve)); } }; exports.Writable = class Writable extends stream.Writable { constructor(opts = {}) { super({ ...opts, byteLength: null, byteLengthWritable, map: null, mapWritable: null }); if (this._construct) this._open = this._construct; if (this._write !== stream.Writable.prototype._write) { this._write = write.bind(this, this._write); } if (this._destroy !== stream.Stream.prototype._destroy) { this._destroy = destroy.bind(this, this._destroy); } } get closed() { return !exports.isWritable(this); } get errored() { return stream.getStreamError(this); } write(chunk, encoding, cb) { if (typeof encoding === "function") { cb = encoding; encoding = null; } if (typeof chunk === "string") { encoding = encoding || defaultEncoding; chunk = b4a.from(chunk, encoding); } else { encoding = "buffer"; } const result = super.write({ chunk, encoding }); if (cb) stream.Writable.drained(this).then(() => cb(null), cb); return result; } end(chunk, encoding, cb) { if (typeof chunk === "function") { cb = chunk; chunk = null; } else if (typeof encoding === "function") { cb = encoding; encoding = null; } if (typeof chunk === "string") { encoding = encoding || defaultEncoding; chunk = b4a.from(chunk, encoding || defaultEncoding); } else { encoding = "buffer"; } const result = chunk !== void 0 && chunk !== null ? super.end({ chunk, encoding }) : super.end(); if (cb) this.once("finish", () => cb(null)); return result; } static fromWeb(writableStream, opts = {}) { const stream2 = writableStream._stream; if (opts.signal) exports.addAbortSignal(opts.signal, stream2); return stream2; } static toWeb(writable) { return new WritableStream(writable); } async [Symbol.asyncDispose]() { if (!this.destroyed) this.destroy(); await new Promise((resolve) => exports.finished(this, resolve)); } }; exports.Duplex = class Duplex extends stream.Duplex { constructor(opts = {}) { super({ ...opts, byteLength: null, byteLengthReadable: null, byteLengthWritable, map: null, mapReadable: null, mapWritable: null }); if (this._construct) this._open = this._construct; if (this._read !== stream.Readable.prototype._read) { this._read = read.bind(this, this._read); } if (this._write !== stream.Duplex.prototype._write) { this._write = write.bind(this, this._write); } if (this._destroy !== stream.Stream.prototype._destroy) { this._destroy = destroy.bind(this, this._destroy); } } push(chunk, encoding) { if (typeof chunk === "string") { chunk = b4a.from(chunk, encoding || defaultEncoding); } return super.push(chunk); } unshift(chunk, encoding) { if (typeof chunk === "string") { chunk = b4a.from(chunk, encoding || defaultEncoding); } super.unshift(chunk); } write(chunk, encoding, cb) { if (typeof encoding === "function") { cb = encoding; encoding = null; } if (typeof chunk === "string") { encoding = encoding || defaultEncoding; chunk = b4a.from(chunk, encoding); } else { encoding = "buffer"; } const result = super.write({ chunk, encoding }); if (cb) stream.Writable.drained(this).then(() => cb(null), cb); return result; } end(chunk, encoding, cb) { if (typeof chunk === "function") { cb = chunk; chunk = null; } else if (typeof encoding === "function") { cb = encoding; encoding = null; } if (typeof chunk === "string") { encoding = encoding || defaultEncoding; chunk = b4a.from(chunk, encoding); } else { encoding = "buffer"; } const result = chunk !== void 0 && chunk !== null ? super.end({ chunk, encoding }) : super.end(); if (cb) this.once("finish", () => cb(null)); return result; } static fromWeb({ readable: readableStream, writable: writableStream }, opts) { const readable = exports.Readable.fromWeb(readableStream, opts); const writable = exports.Writable.fromWeb(writableStream, opts); const duplex = new exports.Duplex({ write(data, encoding, cb) { writable.write(data, encoding, cb); } }); readable.on("data", (data) => duplex.push(data)).on("end", () => duplex.push(null)).on("error", (err) => duplex.destroy(err)); writable.on("finish", () => duplex.end()).on("error", (err) => duplex.destroy(err)); return duplex; } static toWeb(duplex) { const readableStream = exports.Readable.toWeb(duplex); const writableStream = exports.Writable.toWeb(duplex); return { readable: readableStream, writable: writableStream }; } }; var DuplexSide = class extends exports.Duplex { constructor(opts) { super(opts); this._otherSide = null; this._cb = null; } _read() { const cb = this._cb; if (!cb) return; this._cb = null; cb(); } _write(chunk, encoding, cb) { this._otherSide.push(chunk, encoding); this._otherSide._cb = cb; } _final(cb) { this._otherSide.on("end", cb); this._otherSide.push(null); } }; exports.duplexPair = function duplexPair(opts) { const sideA = new DuplexSide(opts); const sideB = new DuplexSide(opts); sideA._otherSide = sideB; sideB._otherSide = sideA; return [sideA, sideB]; }; exports.Transform = class Transform extends stream.Transform { constructor(opts = {}) { super({ ...opts, byteLength: null, byteLengthReadable: null, byteLengthWritable, map: null, mapReadable: null, mapWritable: null }); if (this._transform !== stream.Transform.prototype._transform) { this._transform = transform.bind(this, this._transform); } else { this._transform = passthrough; } } push(chunk, encoding) { if (typeof chunk === "string") { chunk = b4a.from(chunk, encoding || defaultEncoding); } return super.push(chunk); } unshift(chunk, encoding) { if (typeof chunk === "string") { chunk = b4a.from(chunk, encoding || defaultEncoding); } super.unshift(chunk); } write(chunk, encoding, cb) { if (typeof encoding === "function") { cb = encoding; encoding = null; } if (typeof chunk === "string") { encoding = encoding || defaultEncoding; chunk = b4a.from(chunk, encoding); } else { encoding = "buffer"; } const result = super.write({ chunk, encoding }); if (cb) stream.Writable.drained(this).then(() => cb(null), cb); return result; } end(chunk, encoding, cb) { if (typeof chunk === "function") { cb = chunk; chunk = null; } else if (typeof encoding === "function") { cb = encoding; encoding = null; } if (typeof chunk === "string") { encoding = encoding || defaultEncoding; chunk = b4a.from(chunk, encoding); } else { encoding = "buffer"; } const result = chunk !== void 0 && chunk !== null ? super.end({ chunk, encoding }) : super.end(); if (cb) this.once("finish", () => cb(null)); return result; } }; exports.PassThrough = class PassThrough extends exports.Transform { }; exports.finished = function finished(stream2, opts, cb) { if (typeof opts === "function") { cb = opts; opts = {}; } if (!opts) opts = {}; const { cleanup = false } = opts; const done = () => { cb(exports.getStreamError(stream2, { all: true })); if (cleanup) detach(); }; const detach = () => { stream2.off("close", done); stream2.off("error", noop); }; if (stream2.destroyed) { done(); } else { stream2.on("close", done); stream2.on("error", noop); } return detach; }; function read(read2, cb) { read2.call(this, 65536); cb(null); } function write(write2, data, cb) { write2.call(this, data.chunk, data.encoding, cb); } function transform(transform2, data, cb) { transform2.call(this, data.chunk, data.encoding, cb); } function destroy(destroy2, cb) { destroy2.call(this, exports.getStreamError(this), cb); } function passthrough(data, cb) { cb(null, data.chunk); } function byteLengthWritable(data) { return data.chunk.byteLength; } function noop() { } } }); // ../../node_modules/bare-crypto/lib/hash.js var require_hash = __commonJS({ "../../node_modules/bare-crypto/lib/hash.js"(exports, module) { var { Transform } = require_bare_stream(); var assert = require_bare_assert(); var binding = require_binding3(); var constants = require_constants(); var { hash: { RIPEMD160 } } = constants; var CryptoDigest = class { constructor(algorithm) { this._handle = binding.digestInit(algorithm); } update(data) { if (this._handle === null) { throw new Error("Digest has already been finalized"); } binding.digestUpdate(this._handle, data.buffer, data.byteOffset, data.byteLength); } final() { if (this._handle === null) { throw new Error("Digest has already been finalized"); } const result = Buffer.from(binding.digestFinal(this._handle)); this._handle = null; return result; } }; var CryptoRIPEMD160Digest = class { constructor() { this._handle = binding.ripemd160Init(); } update(data) { if (this._handle === null) { throw new Error("Digest has already been finalized"); } binding.ripemd160Update(this._handle, data.buffer, data.byteOffset, data.byteLength); } final() { if (this._handle === null) { throw new Error("Digest has already been finalized"); } const result = Buffer.from(binding.ripemd160Final(this._handle)); this._handle = null; return result; } }; module.exports = class CryptoHash extends Transform { constructor(algorithm, opts = {}) { super(opts); algorithm = constants.toHash(algorithm); switch (algorithm) { case RIPEMD160: this._digest = new CryptoRIPEMD160Digest(); break; default: this._digest = new CryptoDigest(algorithm); break; } } update(data, encoding = "utf8") { if (typeof data === "string") data = Buffer.from(data, encoding); assert(ArrayBuffer.isView(data)); this._digest.update(data); return this; } digest(encoding) { const digest = this._digest.final(); return encoding && encoding !== "buffer" ? digest.toString(encoding) : digest; } _transform(data, encoding, cb) { this.update(data); cb(null); } _flush(cb) { this.push(this.digest()); cb(null); } }; } }); // ../../node_modules/bare-crypto/lib/hmac.js var require_hmac = __commonJS({ "../../node_modules/bare-crypto/lib/hmac.js"(exports, module) { var { Transform } = require_bare_stream(); var assert = require_bare_assert(); var binding = require_binding3(); var constants = require_constants(); module.exports = class CryptoHmac extends Transform { constructor(algorithm, key, opts = {}) { super(opts); const { encoding = "utf8" } = opts; if (typeof key === "string") key = Buffer.from(key, encoding); assert(ArrayBuffer.isView(key)); this._finalized = false; binding.hmacInit(this, constants.toHash(algorithm), key.buffer, key.byteOffset, key.byteLength); } update(data, encoding = "utf8") { if (this._finalized) { throw new Error("Hmac has already been finalized"); } if (typeof data === "string") data = Buffer.from(data, encoding); assert(ArrayBuffer.isView(data)); binding.hmacUpdate(this, data.buffer, data.byteOffset, data.byteLength); return this; } digest(encoding) { if (this._finalized) { throw new Error("Hmac has already been finalized"); } const digest = Buffer.from(binding.hmacFinal(this)); this._finalized = true; return encoding && encoding !== "buffer" ? digest.toString(encoding) : digest; } _transform(data, encoding, cb) { this.update(data); cb(null); } _flush(cb) { this.push(this.digest()); cb(null); } }; } }); // ../../node_modules/bare-crypto/lib/cipher.js var require_cipher = __commonJS({ "../../node_modules/bare-crypto/lib/cipher.js"(exports) { var { Transform } = require_bare_stream(); var assert = require_bare_assert(); var binding = require_binding3(); var constants = require_constants(); var { cipher: { AES128ECB, AES128CBC, AES128CTR, AES128OFB, AES256ECB, AES256CBC, AES256CTR, AES256OFB, AES128GCM, AES256GCM, CHACHA20POLY1305, XCHACHA20POLY1305 } } = constants; var CryptoCipher = class { constructor(algorithm, key, iv, encrypt, opts = {}) { const { encoding = "utf8" } = opts; if (typeof key === "string") key = Buffer.from(key, encoding); if (typeof iv === "string") iv = Buffer.from(iv, encoding); assert(ArrayBuffer.isView(key)); assert(ArrayBuffer.isView(iv)); if (key.byteLength !== binding.cipherKeyLength(algorithm)) { throw new RangeError("Invalid key length"); } if (iv.byteLength !== binding.cipherIVLength(algorithm)) { throw new RangeError("Invalid iv length"); } this._finalized = false; binding.cipherInit( this, algorithm, key.buffer, key.byteOffset, key.byteLength, iv.buffer, iv.byteOffset, iv.byteLength, encrypt ); } update(data, inputEncoding = "utf8", outputEncoding) { if (this._finalized) { throw new Error("Cipher has already been finalized"); } if (typeof data === "string") data = Buffer.from(data, inputEncoding); assert(ArrayBuffer.isView(data)); const out = new ArrayBuffer(data.byteLength + binding.cipherBlockSize(this)); const written = binding.cipherUpdate(this, data.buffer, data.byteOffset, data.byteLength, out); const result = Buffer.from(out, 0, written); return outputEncoding ? result.toString(outputEncoding) : result; } final(outputEncoding) { if (this._finalized) { throw new Error("Cipher has already been finalized"); } const out = new ArrayBuffer(binding.cipherBlockSize(this)); const written = binding.cipherFinal(this, out); this._finalized = true; const result = Buffer.from(out, 0, written); return outputEncoding ? result.toString(outputEncoding) : result; } setAutoPadding(pad) { if (this._finalized) { throw new Error("Cipher has already been finalized"); } binding.cipherSetPadding(this, pad); } }; var CryptoAuthenticatedCipher = class { constructor(algorithm, key, nonce, opts = {}) { const { encoding = "utf8", authTagLength = 16 } = opts; if (typeof key === "string") key = Buffer.from(key, encoding); if (typeof nonce === "string") nonce = Buffer.from(nonce, encoding); assert(ArrayBuffer.isView(key)); assert(ArrayBuffer.isView(nonce)); if (key.byteLength !== binding.aeadKeyLength(algorithm)) { throw new RangeError("Invalid key length"); } if (nonce.byteLength !== binding.aeadNonceLength(algorithm)) { throw new RangeError("Invalid nonce length"); } if (authTagLength !== 12 && authTagLength !== 14 && authTagLength !== 16) { throw new RangeError("Invalid authentication tag length"); } this._buffer = []; this._nonce = nonce; this._authTag = null; this._authTagLength = authTagLength; this._additionalData = null; this._finalized = false; binding.aeadInit(this, algorithm, key.buffer, key.byteOffset, key.byteLength, authTagLength); } update(data, inputEncoding = "utf8", outputEncoding) { if (typeof data === "string") data = Buffer.from(data, inputEncoding); assert(ArrayBuffer.isView(data)); this._buffer.push(data); return outputEncoding ? "" : Buffer.alloc(0); } setAAD(buffer, opts = {}) { const { encoding = "utf8" } = opts; if (typeof buffer === "string") buffer = Buffer.from(buffer, encoding); assert(ArrayBuffer.isView(buffer)); this._additionalData = buffer; } getAuthTag() { return this._authTag; } setAuthTag(authTag, encoding) { if (typeof authTag === "string") authTag = Buffer.from(authTag, encoding); assert(ArrayBuffer.isView(authTag)); this._authTag = authTag; } }; var CryptoAuthenticatedSeal = class extends CryptoAuthenticatedCipher { final(outputEncoding) { if (this._finalized) { throw new Error("Cipher has already been finalized"); } const data = this._buffer.length === 1 ? this._buffer[0] : Buffer.concat(this._buffer); const nonce = this._nonce; const ad = this._additionalData || Buffer.alloc(0); const out = new ArrayBuffer(data.byteLength + binding.aeadMaxOverhead(this)); const written = binding.aeadSeal( this, data.buffer, data.byteOffset, data.byteLength, nonce.buffer, nonce.byteOffset, nonce.byteLength, ad.buffer, ad.byteOffset, ad.byteLength, out ); this._finalized = true; const cipherLength = written - this._authTagLength; this._authTag = Buffer.from(out, cipherLength); const result = Buffer.from(out, 0, cipherLength); return outputEncoding ? result.toString(outputEncoding) : result; } }; var CryptoAuthenticatedOpen = class extends CryptoAuthenticatedCipher { final(outputEncoding) { if (this._finalized) { throw new Error("Decipher has already been finalized"); } this._buffer.push(this._authTag); const data = Buffer.concat(this._buffer); const nonce = this._nonce; const ad = this._additionalData || Buffer.alloc(0); const out = new ArrayBuffer(data.byteLength); const written = binding.aeadOpen( this, data.buffer, data.byteOffset, data.byteLength, nonce.buffer, nonce.byteOffset, nonce.byteLength, ad.buffer, ad.byteOffset, ad.byteLength, out ); this._finalized = true; const result = Buffer.from(out, 0, written); return outputEncoding ? result.toString(outputEncoding) : result; } }; exports.Cipheriv = class CryptoCipheriv extends Transform { constructor(algorithm, key, iv, opts = {}) { super(opts); algorithm = constants.toCipher(algorithm); switch (algorithm) { case AES128ECB: case AES128CBC: case AES128CTR: case AES128OFB: case AES256ECB: case AES256CBC: case AES256CTR: case AES256OFB: this._cipher = new CryptoCipher(algorithm, key, iv, true, opts); break; case AES128GCM: case AES256GCM: case CHACHA20POLY1305: case XCHACHA20POLY1305: this._cipher = new CryptoAuthenticatedSeal(algorithm, key, iv, opts); break; } } update(data, inputEncoding, outputEncoding) { return this._cipher.update(data, inputEncoding, outputEncoding); } final(outputEncoding) { return this._cipher.final(outputEncoding); } setAutoPadding(pad) { this._cipher.setAutoPadding(pad); return this; } setAAD(buffer, opts) { this._cipher.setAAD(buffer, opts); return this; } getAuthTag() { return this._cipher.getAuthTag(); } _transform(data, encoding, cb) { this.push(this.update(data)); cb(null); } _flush(cb) { this.push(this.final()); cb(null); } }; exports.Decipheriv = class CryptoDeipheriv extends Transform { constructor(algorithm, key, iv, opts = {}) { super(opts); algorithm = constants.toCipher(algorithm); switch (algorithm) { case AES128ECB: case AES128CBC: case AES128CTR: case AES128OFB: case AES256ECB: case AES256CBC: case AES256CTR: case AES256OFB: this._cipher = new CryptoCipher(algorithm, key, iv, false, opts); break; case AES128GCM: case AES256GCM: case CHACHA20POLY1305: case XCHACHA20POLY1305: this._cipher = new CryptoAuthenticatedOpen(algorithm, key, iv, opts); break; } } update(data, inputEncoding, outputEncoding) { return this._cipher.update(data, inputEncoding, outputEncoding); } final(outputEncoding) { return this._cipher.final(outputEncoding); } setAutoPadding(pad) { this._cipher.setAutoPadding(pad); return this; } setAAD(buffer, opts) { this._cipher.setAAD(buffer, opts); return this; } setAuthTag(authTag, encoding) { this._cipher.setAuthTag(authTag, encoding); return this; } _transform(data, encoding, cb) { this.push(this.update(data)); cb(null); } _flush(cb) { this.push(this.final()); cb(null); } }; } }); // ../../node_modules/bare-crypto/lib/random.js var require_random = __commonJS({ "../../node_modules/bare-crypto/lib/random.js"(exports) { var assert = require_bare_assert(); var binding = require_binding3(); exports.randomBytes = function randomBytes(size, cb) { assert(typeof size === "number" && !isNaN(size)); const buffer = Buffer.allocUnsafe(size); exports.randomFill(buffer); if (cb) queueMicrotask(() => cb(null, buffer)); else return buffer; }; exports.randomFill = function randomFill(buffer, offset, size, cb) { if (typeof offset === "function") { cb = offset; offset = void 0; } else if (typeof size === "function") { cb = size; size = void 0; } assert(buffer instanceof ArrayBuffer || ArrayBuffer.isView(buffer)); assert(size === void 0 || typeof size === "number" && !isNaN(size)); assert(offset === void 0 || typeof offset === "number" && !isNaN(offset)); const elementSize = buffer.BYTES_PER_ELEMENT || 1; if (offset === void 0) offset = 0; else offset *= elementSize; if (size === void 0) size = buffer.byteLength - offset; else size *= elementSize; if (offset < 0 || offset > buffer.byteLength) { throw new RangeError("offset is out of range"); } if (size < 0 || size > buffer.byteLength) { throw new RangeError("size is out of range"); } if (offset + size > buffer.byteLength) { throw new RangeError("offset + size is out of range"); } let arraybuffer; if (ArrayBuffer.isView(buffer)) { offset += buffer.byteOffset; arraybuffer = buffer.buffer; } else { arraybuffer = buffer; } binding.randomFill(arraybuffer, offset, size); if (cb) queueMicrotask(() => cb(null, buffer)); else return buffer; }; exports.randomUUID = function randomUUID() { const uuid = exports.randomBytes(16); uuid[6] = uuid[6] & 15 | 64; uuid[8] = uuid[8] & 63 | 128; return uuid.subarray(0, 4).toString("hex") + "-" + uuid.subarray(4, 6).toString("hex") + "-" + uuid.subarray(6, 8).toString("hex") + "-" + uuid.subarray(8, 10).toString("hex") + "-" + uuid.subarray(10, 16).toString("hex"); }; } }); // ../../node_modules/bare-crypto/lib/pbkdf2.js var require_pbkdf2 = __commonJS({ "../../node_modules/bare-crypto/lib/pbkdf2.js"(exports, module) { var assert = require_bare_assert(); var binding = require_binding3(); var constants = require_constants(); module.exports = function pbkdf2(password, salt, iterations, keylen, digest, cb) { assert(typeof iterations === "number" && !isNaN(iterations)); if (iterations < 1 || iterations > 4294967295) { throw new RangeError("Invalid iterations"); } assert(typeof keylen === "number" && !isNaN(keylen)); if (keylen < 1 || keylen > 2147483647) { throw new RangeError("Invalid key length"); } if (typeof password === "string") password = Buffer.from(password); if (typeof salt === "string") salt = Buffer.from(salt); assert(ArrayBuffer.isView(password)); assert(ArrayBuffer.isView(salt)); const buffer = Buffer.from( binding.pbkdf2( password.buffer, password.byteOffset, password.byteLength, salt.buffer, salt.byteOffset, salt.byteLength, iterations, constants.toHash(digest), keylen ) ); if (cb) queueMicrotask(() => cb(null, buffer)); else return buffer; }; } }); // ../../node_modules/bare-crypto/lib/key.js var require_key = __commonJS({ "../../node_modules/bare-crypto/lib/key.js"(exports) { var binding = require_binding3(); var constants = require_constants(); var { keyType: { ED25519 } } = constants; var CryptoKey = class { constructor(keyType) { this._keyType = keyType; } get type() { throw new Error("Not implemented"); } get destroyed() { return false; } export() { throw new Error("Not implemented"); } destroy() { } [Symbol.dispose]() { this.destroy(); } }; exports.Key = CryptoKey; var CryptoEd25519Key = class extends CryptoKey { constructor(key = null) { super(ED25519); this._destroyed = false; if (key === null) { binding.keyInit(this, new ArrayBuffer(0), 0, 0); } else if (ArrayBuffer.isView(key)) { binding.keyInit(this, key.buffer, key.byteOffset, key.byteLength); } else { binding.keyInit(this, key, 0, key.byteLength); } } get asymmetricKeyType() { return "ed25519"; } get destroyed() { return this._destroyed; } export() { if (this._destroyed) { throw new Error("Key has been destroyed"); } return Buffer.from(binding.keyExport(this)); } destroy() { if (this._destroyed) return; binding.keyDestroy(this); this._destroyed = true; } }; var CryptoEd25519PublicKey = class extends CryptoEd25519Key { get type() { return "public"; } }; exports.Ed25519PublicKey = CryptoEd25519PublicKey; var CryptoEd25519PrivateKey = class extends CryptoEd25519Key { get type() { return "private"; } }; exports.Ed25519PrivateKey = CryptoEd25519PrivateKey; var CryptoSecretKey = class extends CryptoKey { constructor(key) { super(); this._destroyed = false; if (ArrayBuffer.isView(key)) { binding.keyInit(this, key.buffer, key.byteOffset, key.byteLength); } else { binding.keyInit(this, key, 0, key.byteLength); } } get type() { return "secret"; } get destroyed() { return this._destroyed; } export() { if (this._destroyed) { throw new Error("Key has been destroyed"); } return Buffer.from(binding.keyExport(this)); } destroy() { if (this._destroyed) return; binding.keyDestroy(this); this._destroyed = true; } }; exports.SecretKey = CryptoSecretKey; exports.generateKeyPair = function generateKeyPair(type) { type = constants.toKeyType(type); switch (type) { case ED25519: { const publicKey = new CryptoEd25519PublicKey(); const privateKey = new CryptoEd25519PrivateKey(); binding.ed25519GenerateKeypair(publicKey, privateKey); return { publicKey, privateKey }; } } }; } }); // ../../node_modules/bare-crypto/lib/signature.js var require_signature = __commonJS({ "../../node_modules/bare-crypto/lib/signature.js"(exports) { var assert = require_bare_assert(); var binding = require_binding3(); var { Key } = require_key(); var constants = require_constants(); var { keyType: { ED25519 } } = constants; exports.sign = function sign(algorithm, data, key) { assert(data instanceof ArrayBuffer || ArrayBuffer.isView(data)); if (ArrayBuffer.isView(data)) { data = Buffer.coerce(data); } else { data = Buffer.from(data); } assert(key instanceof Key); switch (key._keyType) { case ED25519: return Buffer.from(binding.ed25519Sign(data.buffer, data.byteOffset, data.byteLength, key)); } }; exports.verify = function verify(algorithm, data, key, signature) { assert(data instanceof ArrayBuffer || ArrayBuffer.isView(data)); if (ArrayBuffer.isView(data)) { data = Buffer.coerce(data); } else { data = Buffer.from(data); } assert(signature instanceof ArrayBuffer || ArrayBuffer.isView(signature)); if (ArrayBuffer.isView(signature)) { signature = Buffer.coerce(signature); } else { signature = Buffer.from(signature); } assert(key instanceof Key); switch (key._keyType) { case ED25519: assert(signature.byteLength === 64); return binding.ed25519Verify( data.buffer, data.byteOffset, data.byteLength, signature.buffer, signature.byteOffset, key ); } }; } }); // ../../node_modules/bare-crypto/lib/timing.js var require_timing = __commonJS({ "../../node_modules/bare-crypto/lib/timing.js"(exports) { var assert = require_bare_assert(); var binding = require_binding3(); exports.timingSafeEqual = function timingSafeEqual(a, b) { assert(a instanceof ArrayBuffer || ArrayBuffer.isView(a)); assert(b instanceof ArrayBuffer || ArrayBuffer.isView(b)); let aBuffer, aOffset; if (ArrayBuffer.isView(a)) { aBuffer = a.buffer; aOffset = a.byteOffset; } else { aBuffer = a; aOffset = 0; } let bBuffer, bOffset; if (ArrayBuffer.isView(b)) { bBuffer = b.buffer; bOffset = b.byteOffset; } else { bBuffer = b; bOffset = 0; } return binding.timingSafeEqual(aBuffer, aOffset, a.byteLength, bBuffer, bOffset, b.byteLength); }; } }); // ../../node_modules/bare-crypto/lib/web/crypto-key.js var require_crypto_key = __commonJS({ "../../node_modules/bare-crypto/lib/web/crypto-key.js"(exports, module) { module.exports = class CryptoKey { constructor(type, extractable, algorithm, usages, handle = null) { this._type = type; this._extractable = extractable; this._algorithm = algorithm; this._usages = usages; this._handle = handle; } // https://w3c.github.io/webcrypto/#dom-cryptokey-type get type() { return this._type; } // https://w3c.github.io/webcrypto/#dom-cryptokey-extractable get extractable() { return this._extractable; } // https://w3c.github.io/webcrypto/#dom-cryptokey-algorithm get algorithm() { return this._algorithm; } // https://w3c.github.io/webcrypto/#dom-cryptokey-usages get usages() { return this._usages; } get destroyed() { return this._handle === null; } destroy() { if (this._handle === null) return; this._handle.destroy(); this._handle = null; } [Symbol.dispose]() { this.destroy(); } [Symbol.for("bare.inspect")]() { return { __proto__: { constructor: CryptoKey }, type: this.type, extractable: this.extractable, algorithm: this.algorithm, usages: this.usages }; } }; } }); // ../../node_modules/bare-crypto/lib/web/algorithm/hmac.js var require_hmac2 = __commonJS({ "../../node_modules/bare-crypto/lib/web/algorithm/hmac.js"(exports) { var crypto = require_bare_crypto(); var errors = require_errors(); var { SecretKey } = require_key(); var CryptoKey = require_crypto_key(); exports.sign = function sign(algorithm, key, data) { const material = key._handle.export(); const digest = crypto.createHmac(key.algorithm.hash.name, material).update(data).digest(); return digest.buffer.slice(0, digest.byteLength); }; exports.verify = function verify(algorithm, key, signature, data) { const material = key._handle.export(); const digest = crypto.createHmac(key.algorithm.hash.name, material).update(data).digest(); if (ArrayBuffer.isView(signature)) { signature = Buffer.coerce(signature); } else { signature = Buffer.from(signature); } if (signature.byteLength !== digest.byteLength) return false; return crypto.timingSafeEqual(signature, digest); }; exports.generateKey = function generateKey(algorithm, extractable, usages) { for (const usage of usages) { if (usage !== "sign" && usage !== "verify") { throw new SyntaxError(`Usage '${usage}' cannot be used for the HMAC generateKey() operation`); } } const length = exports.getKeyLength(algorithm); let hash = algorithm.hash; if (typeof hash === "string") hash = { name: hash }; const key = crypto.randomBytes(length / 8); const handle = new SecretKey(key); key.fill(0); return new CryptoKey( "secret", extractable, { name: "HMAC", length, hash: { name: hash.name.toUpperCase() } }, usages, handle ); }; exports.importKey = function importKey(format, keyData, algorithm, extractable, usages) { for (const usage of usages) { if (usage !== "sign" && usage !== "verify") { throw new SyntaxError(`Invalid usage ${usage}`); } } let hash = algorithm.hash; if (typeof hash === "string") hash = { name: hash }; let data; let owned = false; switch (format) { case "raw": data = keyData; break; case "jwk": { const jwk = keyData; if (jwk.kty !== "oct") { throw errors.INVALID_DATA("JWK key must be an octet sequence"); } data = Buffer.from(jwk.k, "base64url"); owned = true; switch (hash.name.toLowerCase()) { case "sha-1": if (jwk.alg === "HS1") break; else throw errors.INVALID_DATA("Invalid JWK key algorithm"); case "sha-256": if (jwk.alg === "HS256") break; else throw errors.INVALID_DATA("Invalid JWK key algorithm"); case "sha-384": if (jwk.alg === "HS384") break; else throw errors.INVALID_DATA("Invalid JWK key algorithm"); case "sha-512": if (jwk.alg === "HS512") break; else throw errors.INVALID_DATA("Invalid JWK key algorithm"); } if (usages.length && "use" in jwk && jwk.use !== "sign") { throw errors.INVALID_DATA("JWK cannot be used for signing"); } if ("ext" in jwk && jwk.ext !== extractable && extractable) { throw errors.INVALID_DATA("JWK is not extractable"); } break; } default: throw errors.NOT_SUPPORTED( `Format '${format}' cannot be used for the HMAC importKey() operation` ); } const length = data.byteLength * 8; if (length === 0) { throw errors.INVALID_DATA("Key cannot be empty"); } const handle = new SecretKey(data); if (owned) data.fill(0); return new CryptoKey( "secret", extractable, { name: "HMAC", length, hash: { name: hash.name.toUpperCase() } }, usages, handle ); }; exports.exportKey = function exportKey(format, key) { const data = key._handle.export(); switch (format) { case "raw": return data.buffer.slice(0, data.byteLength); case "jwk": { const jwk = { kty: "oct", k: data.toString("base64url"), alg: null, key_ops: key.usages, ext: key.extractable }; switch (key.algorithm.hash.name) { case "SHA-1": jwk.alg = "HS1"; break; case "SHA-256": jwk.alg = "HS256"; break; case "SHA-384": jwk.alg = "HS384"; break; case "SHA-512": jwk.alg = "HS512"; break; } return jwk; } default: throw errors.NOT_SUPPORTED( `Format '${format}' cannot be used for the HMAC exportKey() operation` ); } }; exports.getKeyLength = function getKeyLength(algorithm) { const { length } = algorithm; let { hash } = algorithm; if (hash !== null && typeof hash === "object") hash = hash.name; if (length === void 0) { if (hash === "SHA-1" || hash === "SHA-256") return 512; if (hash === "SHA-384" || hash === "SHA-512") return 1024; throw errors.OPERATION_ERROR(`Invalid hash '${hash}'`); } if (length === 0) { throw errors.OPERATION_ERROR(`Invalid length ${length}`); } return length; }; } }); // ../../node_modules/bare-crypto/lib/web/algorithm/pbkdf2.js var require_pbkdf22 = __commonJS({ "../../node_modules/bare-crypto/lib/web/algorithm/pbkdf2.js"(exports) { var crypto = require_bare_crypto(); var errors = require_errors(); var { SecretKey } = require_key(); var CryptoKey = require_crypto_key(); exports.deriveBits = function deriveBits(algorithm, key, length) { if (length === void 0 || length % 8) { throw errors.OPERATION_ERROR("Length must be multiple of 8"); } if (algorithm.iterations === 0) { throw errors.OPERATION_ERROR("Iterations must be non-0"); } if (length === 0) { return new ArrayBuffer(0); } let hash = algorithm.hash; if (typeof hash === "string") hash = { name: hash }; const material = key._handle.export(); const result = crypto.pbkdf2( material, algorithm.salt, algorithm.iterations, length / 8, hash.name ); return result.buffer; }; exports.importKey = function importKey(format, keyData, algorithm, extractable, usages) { if (format !== "raw") { throw errors.NOT_SUPPORTED( `Format '${format}' cannot be used for the PBKDF2 importKey() operation` ); } for (const usage of usages) { if (usage !== "deriveKey" && usage !== "deriveBits") { throw new SyntaxError(`Invalid usage ${usage}`); } } if (extractable) { throw new SyntaxError("Extractable must be false"); } return new CryptoKey( "secret", extractable, { name: "PBKDF2" }, usages, new SecretKey(keyData) ); }; } }); // ../../node_modules/bare-crypto/lib/web/algorithm/ed25519.js var require_ed25519 = __commonJS({ "../../node_modules/bare-crypto/lib/web/algorithm/ed25519.js"(exports) { var crypto = require_bare_crypto(); var binding = require_binding3(); var errors = require_errors(); var { Ed25519PublicKey, Ed25519PrivateKey } = require_key(); var CryptoKey = require_crypto_key(); exports.sign = function sign(algorithm, key, data) { if (key.type !== "private") { throw errors.INVALID_ACCESS("Must pass private key for Ed25519 signing"); } const signature = crypto.sign(null, data, key._handle); return signature.buffer.slice(0, signature.byteLength); }; exports.verify = function verify(algorithm, key, signature, data) { if (key.type !== "public") { throw errors.INVALID_ACCESS("Must pass public key for Ed25519 verification"); } return crypto.verify(null, data, key._handle, signature); }; exports.generateKey = function generateKey(algorithm, extractable, usages) { for (const usage of usages) { if (usage !== "sign" && usage !== "verify") { throw new SyntaxError( `Usage '${usage}' cannot be used for the Ed25519 generateKey() operation` ); } } const keys = crypto.generateKeyPair("ed25519"); algorithm = { name: "Ed25519" }; return { publicKey: new CryptoKey("public", true, algorithm, ["verify"], keys.publicKey), privateKey: new CryptoKey("private", extractable, algorithm, ["sign"], keys.privateKey) }; }; exports.importKey = function importKey(format, keyData, algorithm, extractable, usages) { switch (format) { case "spki": { for (const usage of usages) { if (usage !== "verify") { throw new SyntaxError( `Usage '${usage}' cannot be used for the Ed25519 importKey() operation` ); } } const publicKey = new Ed25519PublicKey(); binding.ed25519FromSPKI(publicKey, keyData.buffer, keyData.byteOffset, keyData.byteLength); return new CryptoKey( "public", extractable, { name: "Ed25519" }, usages, publicKey ); } case "pkcs8": { for (const usage of usages) { if (usage !== "sign") { throw new SyntaxError( `Usage '${usage}' cannot be used for the Ed25519 importKey() operation` ); } } const privateKey = new Ed25519PrivateKey(); binding.ed25519FromPKCS8(privateKey, keyData.buffer, keyData.byteOffset, keyData.byteLength); return new CryptoKey( "private", extractable, { name: "Ed25519" }, usages, privateKey ); } case "raw": for (const usage of usages) { if (usage !== "verify") { throw new SyntaxError( `Usage '${usage}' cannot be used for the Ed25519 importKey() operation` ); } } if (keyData.byteLength * 8 !== 256) { throw errors.INVALID_DATA("Key must be 256 bits"); } return new CryptoKey( "public", extractable, { name: "Ed25519" }, usages, new Ed25519PublicKey(keyData.buffer) ); case "jwk": { const jwk = keyData; if ("d" in jwk) { if (usages.some((usage) => usage !== "sign")) { throw new SyntaxError("JWK must be valid for signing"); } } else { if (usages.some((usage) => usage !== "verify")) { throw new SyntaxError("JWK must be valid for verification"); } } if (jwk.kty !== "OKP") { throw errors.INVALID_DATA("JWK key must be an octet key-pair"); } if (jwk.crv !== "Ed25519") { throw errors.INVALID_DATA("JWK must use the Ed25519 curve"); } if ("alg" in jwk && jwk.alg !== "Ed25519" && jwk.alg !== "EdDSA") { throw errors.INVALID_DATA("JWK must use the Ed25519 curve"); } if (usages.length && "use" in jwk && jwk.use !== "sig") { throw errors.INVALID_DATA("JWK cannot be used for signatures"); } if ("ext" in jwk && jwk.ext !== extractable && extractable) { throw errors.INVALID_DATA("JWK is not extractable"); } if ("d" in jwk) { const key2 = Buffer.concat([ Buffer.from(jwk.d, "base64url"), Buffer.from(jwk.x, "base64url") ]); if (key2.byteLength * 8 !== 512) { throw errors.INVALID_DATA("Key must be 512 bits"); } const handle = new Ed25519PrivateKey(key2.buffer); key2.fill(0); return new CryptoKey( "private", extractable, { name: "Ed25519" }, usages, handle ); } const key = Buffer.from(jwk.x, "base64url"); if (key.byteLength * 8 !== 256) { throw errors.INVALID_DATA("Key must be 256 bits"); } return new CryptoKey( "public", extractable, { name: "Ed25519" }, usages, new Ed25519PublicKey(key.buffer) ); } default: throw errors.NOT_SUPPORTED( `Format '${format}' cannot be used for the Ed25519 importKey() operation` ); } }; exports.exportKey = function exportKey(format, key) { const data = key._handle; switch (format) { case "spki": if (key.type !== "public") { throw errors.INVALID_ACCESS( `Key of type '${key.type}' cannot be used for the Ed25519 exportKey() operation` ); } return binding.ed25519ToSPKI(data); case "pkcs8": if (key.type !== "private") { throw errors.INVALID_ACCESS( `Key of type '${key.type}' cannot be used for the Ed25519 exportKey() operation` ); } return binding.ed25519ToPKCS8(data); case "raw": { if (key.type !== "public") { throw errors.INVALID_ACCESS( `Key of type '${key.type}' cannot be used for the Ed25519 exportKey() operation` ); } return data.export().buffer; } case "jwk": { const buffer = data.export(); if (key.type === "private") { const d = buffer.subarray(0, 32).toString("base64url"); const x = buffer.subarray(32).toString("base64url"); return { kty: "OKP", alg: "Ed25519", crv: "Ed25519", x, d, key_ops: key.usages, ext: key.extractable }; } return { kty: "OKP", alg: "Ed25519", crv: "Ed25519", x: buffer.toString("base64url"), key_ops: key.usages, ext: key.extractable }; } default: throw errors.NOT_SUPPORTED( `Format '${format}' cannot be used for the HMAC exportKey() operation` ); } }; } }); // ../../node_modules/bare-crypto/lib/web/algorithm/sha.js var require_sha = __commonJS({ "../../node_modules/bare-crypto/lib/web/algorithm/sha.js"(exports) { var crypto = require_bare_crypto(); exports.digest = function digest(name, data) { const digest2 = crypto.createHash(name).update(data).digest(); return digest2.buffer.slice(0, digest2.byteLength); }; } }); // ../../node_modules/bare-crypto/web.js var require_web2 = __commonJS({ "../../node_modules/bare-crypto/web.js"(exports) { var crypto = require_bare_crypto(); var errors = require_errors(); var CryptoKey = require_crypto_key(); var hmac = require_hmac2(); var pbkdf2 = require_pbkdf22(); var ed25519 = require_ed25519(); var sha = require_sha(); exports.CryptoKey = CryptoKey; exports.getRandomValues = function getRandomValues(array) { return crypto.randomFillSync(array); }; exports.randomUUID = crypto.randomUUID; exports.SubtleCrypto = class SubtleCrypto { // https://w3c.github.io/webcrypto/#SubtleCrypto-method-generateKey async generateKey(algorithm, extractable, usages) { if (typeof algorithm === "string") algorithm = { name: algorithm }; switch (algorithm.name.toLowerCase()) { case "hmac": return hmac.generateKey(algorithm, extractable, usages); case "ed25519": return ed25519.generateKey(algorithm, extractable, usages); default: throw errors.NOT_SUPPORTED( `Algorithm '${algorithm.name}' does not support the generateKey() operation` ); } } // https://w3c.github.io/webcrypto/#SubtleCrypto-method-importKey async importKey(format, keyData, algorithm, extractable, usages) { if (typeof algorithm === "string") algorithm = { name: algorithm }; switch (format) { case "raw": case "pkcs8": case "spki": if (ArrayBuffer.isView(keyData)) { keyData = Buffer.from(keyData); } else { keyData = Buffer.from(keyData.slice()); } break; } switch (algorithm.name.toLowerCase()) { case "hmac": return hmac.importKey(format, keyData, algorithm, extractable, usages); case "ed25519": return ed25519.importKey(format, keyData, algorithm, extractable, usages); case "pbkdf2": return pbkdf2.importKey(format, keyData, algorithm, extractable, usages); default: throw errors.NOT_SUPPORTED( `Algorithm '${algorithm.name}' does not support the importKey() operation` ); } } // https://w3c.github.io/webcrypto/#SubtleCrypto-method-exportKey async exportKey(format, key) { if (!key.extractable) { throw errors.INVALID_ACCESS("Key is not extractable"); } switch (key.algorithm.name.toLowerCase()) { case "hmac": return hmac.exportKey(format, key); case "ed25519": return ed25519.exportKey(format, key); default: throw errors.NOT_SUPPORTED( `Algorithm '${key.algorithm.name}' does not support the exportKey() operation` ); } } // https://w3c.github.io/webcrypto/#SubtleCrypto-method-sign async sign(algorithm, key, data) { if (typeof algorithm === "string") algorithm = { name: algorithm }; if (algorithm.name.toLowerCase() !== key.algorithm.name.toLowerCase()) { throw errors.INVALID_ACCESS(`Algorithm '${algorithm.name}' does not match key'`); } if (!key.usages.includes("sign")) { throw errors.INVALID_ACCESS("Key cannot be used for signing"); } switch (algorithm.name.toLowerCase()) { case "hmac": return hmac.sign(algorithm, key, data); case "ed25519": return ed25519.sign(algorithm, key, data); default: throw errors.NOT_SUPPORTED( `Algorithm '${algorithm.name}' does not support the sign() operation` ); } } // https://w3c.github.io/webcrypto/#SubtleCrypto-method-verify async verify(algorithm, key, signature, data) { if (typeof algorithm === "string") algorithm = { name: algorithm }; if (algorithm.name.toLowerCase() !== key.algorithm.name.toLowerCase()) { throw errors.INVALID_ACCESS(`Algorithm '${algorithm.name}' does not match key'`); } if (!key.usages.includes("verify")) { throw errors.INVALID_ACCESS("Key cannot be used for verification"); } switch (algorithm.name.toLowerCase()) { case "hmac": return hmac.verify(algorithm, key, signature, data); case "ed25519": return ed25519.verify(algorithm, key, signature, data); default: throw errors.NOT_SUPPORTED( `Algorithm '${algorithm.name}' does not support the verify() operation` ); } } // https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveBits async deriveBits(algorithm, key, length) { if (typeof algorithm === "string") algorithm = { name: algorithm }; if (algorithm.name.toLowerCase() !== key.algorithm.name.toLowerCase()) { throw errors.INVALID_ACCESS(`Algorithm '${algorithm.name}' does not match key'`); } if (!key.usages.includes("deriveBits")) { throw errors.INVALID_ACCESS("Key cannot be used to derive bits"); } switch (algorithm.name.toLowerCase()) { case "pbkdf2": return pbkdf2.deriveBits(algorithm, key, length); default: throw errors.NOT_SUPPORTED( `Algorithm '${algorithm.name}' does not support the deriveBits() operation` ); } } // https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveKey async deriveKey(algorithm, baseKey, derivedKeyType, extractable, usages) { if (typeof algorithm === "string") algorithm = { name: algorithm }; if (typeof derivedKeyType === "string") { derivedKeyType = { name: derivedKeyType }; } if (algorithm.name.toLowerCase() !== baseKey.algorithm.name.toLowerCase()) { throw errors.INVALID_ACCESS(`Algorithm '${algorithm.name}' does not match key'`); } if (!baseKey.usages.includes("deriveKey")) { throw errors.INVALID_ACCESS("Key cannot be used to derive key"); } let length; switch (derivedKeyType.name.toLowerCase()) { case "hmac": length = hmac.getKeyLength(derivedKeyType); break; default: throw errors.NOT_SUPPORTED( `Algorithm '${derivedKeyType.name}' does not support the getKeyLength() operation` ); } let secret; switch (algorithm.name.toLowerCase()) { case "pbkdf2": secret = pbkdf2.deriveBits(algorithm, baseKey, length); break; default: throw errors.NOT_SUPPORTED( `Algorithm '${algorithm.name}' does not support the deriveBits() operation` ); } return this.importKey("raw", secret, derivedKeyType, extractable, usages); } // https://w3c.github.io/webcrypto/#SubtleCrypto-method-digest async digest(algorithm, data) { if (typeof algorithm === "string") algorithm = { name: algorithm }; switch (algorithm.name.toLowerCase()) { case "sha-1": return sha.digest(crypto.constants.hash.SHA1, data); case "sha-256": return sha.digest(crypto.constants.hash.SHA256, data); case "sha-384": return sha.digest(crypto.constants.hash.SHA384, data); case "sha-512": return sha.digest(crypto.constants.hash.SHA512, data); default: throw errors.NOT_SUPPORTED( `Algorithm '${algorithm.name}' does not support the digest() operation` ); } } }; exports.subtle = new exports.SubtleCrypto(); exports.Crypto = class Crypto { get subtle() { return exports.subtle; } getRandomValues(array) { return exports.getRandomValues(array); } randomUUID() { return exports.randomUUID(); } }; } }); // ../../node_modules/bare-crypto/index.js var require_bare_crypto = __commonJS({ "../../node_modules/bare-crypto/index.js"(exports) { var constants = require_constants(); var Hash = require_hash(); var Hmac = require_hmac(); var { Cipheriv, Decipheriv } = require_cipher(); var { randomBytes, randomFill, randomUUID } = require_random(); var pbkdf2 = require_pbkdf2(); var { generateKeyPair } = require_key(); var { sign, verify } = require_signature(); var { timingSafeEqual } = require_timing(); exports.constants = constants; exports.Hash = Hash; exports.createHash = function createHash(algorithm, opts) { return new Hash(algorithm, opts); }; exports.Hmac = Hmac; exports.createHmac = function createHmac(algorithm, key, opts) { return new Hmac(algorithm, key, opts); }; exports.Cipheriv = Cipheriv; exports.createCipheriv = function createCipheriv(algorithm, key, iv, opts) { return new Cipheriv(algorithm, key, iv, opts); }; exports.Decipheriv = Decipheriv; exports.createDecipheriv = function createDecipheriv(algorithm, key, iv, opts) { return new Decipheriv(algorithm, key, iv, opts); }; exports.randomBytes = randomBytes; exports.randomFill = randomFill; exports.randomFillSync = function randomFillSync(buffer, offset, size) { return exports.randomFill(buffer, offset, size); }; exports.randomUUID = randomUUID; exports.pbkdf2 = pbkdf2; exports.pbkdf2Sync = function pbkdf2Sync(password, salt, iterations, keylen, digest) { return exports.pbkdf2(password, salt, iterations, keylen, digest); }; exports.generateKeyPair = generateKeyPair; exports.sign = sign; exports.verify = verify; exports.timingSafeEqual = timingSafeEqual; exports.webcrypto = require_web2(); } }); // ../../bare-lib-entry-bareCrypto.js var bare_lib_entry_bareCrypto_exports = {}; __export(bare_lib_entry_bareCrypto_exports, { default: () => bare_lib_entry_bareCrypto_default }); var import_bare_crypto = __toESM(require_bare_crypto()); var bare_lib_entry_bareCrypto_default = import_bare_crypto.default; return __toCommonJS(bare_lib_entry_bareCrypto_exports); })(); ;(function(){var g=globalThis;var s="__bare_os_stdlib__";g[s]=g[s]||{};var e=typeof __bare_os_bundle_exports__!=="undefined"?__bare_os_bundle_exports__:void 0;var v=e!=null&&typeof e==="object"&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;g[s]["bareCrypto"]=v;})();