@resourcexjs/registry 2.4.1 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +104 -270
- package/dist/index.js +940 -19011
- package/dist/index.js.map +10 -14
- package/package.json +4 -7
package/dist/index.js.map
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../core/dist/index.js", "../src/errors.ts", "../src/registries/HostedRegistry.ts", "../src/registries/MirrorRegistry.ts", "../src/registries/LinkedRegistry.ts", "../../loader/dist/index.js", "../src/discovery.ts", "../src/middleware/RegistryMiddleware.ts", "../src/middleware/DomainValidation.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"// ../core/dist/index.js\nimport { createRequire } from \"node:module\";\nimport { webcrypto as crypto } from \"node:crypto\";\nimport { fileURLToPath } from \"node:url\";\nimport { ChildProcess } from \"node:child_process\";\nimport { StringDecoder } from \"node:string_decoder\";\nimport { spawnSync } from \"node:child_process\";\nimport { debuglog } from \"node:util\";\nimport process2 from \"node:process\";\nimport { inspect } from \"node:util\";\nimport { platform } from \"node:process\";\nimport { stripVTControlCharacters } from \"node:util\";\nimport process3 from \"node:process\";\nimport tty from \"node:tty\";\nimport { hrtime } from \"node:process\";\nimport path5 from \"node:path\";\nimport process6 from \"node:process\";\nimport process4 from \"node:process\";\nimport path2 from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { execFile as execFileCallback, execFileSync as execFileSyncOriginal } from \"node:child_process\";\nimport path from \"node:path\";\nimport { fileURLToPath as fileURLToPath2 } from \"node:url\";\nimport { setTimeout as setTimeout2 } from \"node:timers/promises\";\nimport { constants as constants3 } from \"node:os\";\nimport { constants as constants2 } from \"node:os\";\nimport { constants } from \"node:os\";\nimport { once } from \"node:events\";\nimport { scheduler as scheduler2 } from \"node:timers/promises\";\nimport { promisify as promisify2 } from \"node:util\";\nimport { once as once3 } from \"node:events\";\nimport { addAbortListener } from \"node:events\";\nimport { EventEmitter } from \"node:events\";\nimport { once as once2 } from \"node:events\";\nimport { scheduler } from \"node:timers/promises\";\nimport { setTimeout as setTimeout3 } from \"node:timers/promises\";\nimport { execPath, execArgv } from \"node:process\";\nimport path3 from \"node:path\";\nimport { serialize } from \"node:v8\";\nimport { statSync } from \"node:fs\";\nimport path4 from \"node:path\";\nimport process5 from \"node:process\";\nimport { inspect as inspect2 } from \"node:util\";\nimport { on } from \"node:events\";\nimport { finished } from \"node:stream/promises\";\nimport { readFileSync as readFileSync2 } from \"node:fs\";\nimport process7 from \"node:process\";\nimport { readFileSync } from \"node:fs\";\nimport tty2 from \"node:tty\";\nimport { Transform, getDefaultHighWaterMark } from \"node:stream\";\nimport { Buffer as Buffer2 } from \"node:buffer\";\nimport { Buffer as Buffer3 } from \"node:buffer\";\nimport { StringDecoder as StringDecoder2 } from \"node:string_decoder\";\nimport { callbackify } from \"node:util\";\nimport { writeFileSync, appendFileSync } from \"node:fs\";\nimport { once as once4 } from \"node:events\";\nimport { setMaxListeners } from \"node:events\";\nimport { spawn } from \"node:child_process\";\nimport process8 from \"node:process\";\nimport { once as once5, on as on2 } from \"node:events\";\nimport { once as once6, on as on3 } from \"node:events\";\nimport { ChildProcess as ChildProcess2 } from \"node:child_process\";\nimport {\n PassThrough,\n Readable,\n Writable,\n Duplex\n} from \"node:stream\";\nimport { createReadStream, createWriteStream } from \"node:fs\";\nimport { Buffer as Buffer4 } from \"node:buffer\";\nimport { Readable as Readable2, Writable as Writable2, Duplex as Duplex2 } from \"node:stream\";\nimport { on as on4, once as once7 } from \"node:events\";\nimport { PassThrough as PassThroughStream, getDefaultHighWaterMark as getDefaultHighWaterMark2 } from \"node:stream\";\nimport { finished as finished2 } from \"node:stream/promises\";\nimport { finished as finished3 } from \"node:stream/promises\";\nimport { addAbortListener as addAbortListener2 } from \"node:events\";\nimport { finished as finished4 } from \"node:stream/promises\";\nimport { aborted } from \"node:util\";\nimport { setImmediate } from \"node:timers/promises\";\nimport { on as on5 } from \"node:events\";\nimport { getDefaultHighWaterMark as getDefaultHighWaterMark3 } from \"node:stream\";\nimport { finished as finished5 } from \"node:stream/promises\";\nimport { once as once8 } from \"node:events\";\nimport { Readable as Readable3 } from \"node:stream\";\nimport { callbackify as callbackify2 } from \"node:util\";\nimport { finished as finished6 } from \"node:stream/promises\";\nimport { Writable as Writable3 } from \"node:stream\";\nimport { callbackify as callbackify3 } from \"node:util\";\nimport { Duplex as Duplex3 } from \"node:stream\";\nimport { callbackify as callbackify4 } from \"node:util\";\nimport * as fs from \"fs/promises\";\nimport * as path6 from \"path\";\nimport * as fs7 from \"fs/promises\";\nimport * as path10 from \"path\";\nimport { Agent, createServer } from \"node:http\";\nimport { request as httpRequest } from \"node:http\";\nimport { request as httpsRequest } from \"node:https\";\nimport { connect } from \"node:net\";\nimport { URL as URL2 } from \"node:url\";\nimport * as fs2 from \"fs\";\nimport * as fs6 from \"fs\";\nimport { spawnSync as spawnSync4 } from \"child_process\";\nimport { randomBytes } from \"node:crypto\";\nimport * as fs5 from \"fs\";\nimport { spawn as spawn2, spawnSync as spawnSync2 } from \"node:child_process\";\nimport { tmpdir } from \"node:os\";\nimport path8, { join as join4 } from \"node:path\";\nimport { execFile } from \"child_process\";\nimport { homedir } from \"os\";\nimport * as path7 from \"path\";\nimport * as fs3 from \"fs\";\nimport { join as join32, dirname as dirname32 } from \"node:path\";\nimport { fileURLToPath as fileURLToPath3 } from \"node:url\";\nimport * as fs4 from \"node:fs\";\nimport { execSync } from \"node:child_process\";\nimport { homedir as homedir2 } from \"node:os\";\nimport { spawn as spawn3, spawnSync as spawnSync3 } from \"child_process\";\nimport * as path9 from \"path\";\nimport { EOL } from \"node:os\";\nimport { spawn as spawn4 } from \"child_process\";\nimport { createServer as createServer3 } from \"net\";\nimport { createRequire as createRequire2 } from \"module\";\nimport { createRequire as createRequire3 } from \"node:module\";\nimport { readFile as readFile3, writeFile as writeFile3, readdir, mkdir as mkdir3, rm as rm3, access, stat as fsStat } from \"node:fs/promises\";\nimport { resolve as resolve3, dirname as dirname6 } from \"node:path\";\nimport { homedir as homedir3 } from \"node:os\";\nimport { join as join6 } from \"node:path\";\nimport { readFile as readFile22, writeFile as writeFile22, readdir as readdir2, access as access2, unlink, mkdir as mkdir22, stat, rm as rm22 } from \"node:fs/promises\";\nimport { join as join22 } from \"node:path\";\nimport { createHash } from \"crypto\";\nvar __create = Object.create;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __toESM = (mod, isNodeMode, target) => {\n target = mod != null ? __create(__getProtoOf(mod)) : {};\n const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target;\n for (let key of __getOwnPropNames(mod))\n if (!__hasOwnProp.call(to, key))\n __defProp(to, key, {\n get: () => mod[key],\n enumerable: true\n });\n return to;\n};\nvar __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\nvar __require = /* @__PURE__ */ createRequire(import.meta.url);\nvar require_windows = __commonJS((exports, module) => {\n module.exports = isexe;\n isexe.sync = sync;\n var fs8 = __require(\"fs\");\n function checkPathExt(path11, options) {\n var pathext = options.pathExt !== undefined ? options.pathExt : process.env.PATHEXT;\n if (!pathext) {\n return true;\n }\n pathext = pathext.split(\";\");\n if (pathext.indexOf(\"\") !== -1) {\n return true;\n }\n for (var i = 0;i < pathext.length; i++) {\n var p = pathext[i].toLowerCase();\n if (p && path11.substr(-p.length).toLowerCase() === p) {\n return true;\n }\n }\n return false;\n }\n function checkStat(stat2, path11, options) {\n if (!stat2.isSymbolicLink() && !stat2.isFile()) {\n return false;\n }\n return checkPathExt(path11, options);\n }\n function isexe(path11, options, cb) {\n fs8.stat(path11, function(er, stat2) {\n cb(er, er ? false : checkStat(stat2, path11, options));\n });\n }\n function sync(path11, options) {\n return checkStat(fs8.statSync(path11), path11, options);\n }\n});\nvar require_mode = __commonJS((exports, module) => {\n module.exports = isexe;\n isexe.sync = sync;\n var fs8 = __require(\"fs\");\n function isexe(path11, options, cb) {\n fs8.stat(path11, function(er, stat2) {\n cb(er, er ? false : checkStat(stat2, options));\n });\n }\n function sync(path11, options) {\n return checkStat(fs8.statSync(path11), options);\n }\n function checkStat(stat2, options) {\n return stat2.isFile() && checkMode(stat2, options);\n }\n function checkMode(stat2, options) {\n var mod = stat2.mode;\n var uid = stat2.uid;\n var gid = stat2.gid;\n var myUid = options.uid !== undefined ? options.uid : process.getuid && process.getuid();\n var myGid = options.gid !== undefined ? options.gid : process.getgid && process.getgid();\n var u = parseInt(\"100\", 8);\n var g = parseInt(\"010\", 8);\n var o = parseInt(\"001\", 8);\n var ug = u | g;\n var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0;\n return ret;\n }\n});\nvar require_isexe = __commonJS((exports, module) => {\n var fs8 = __require(\"fs\");\n var core;\n if (process.platform === \"win32\" || global.TESTING_WINDOWS) {\n core = require_windows();\n } else {\n core = require_mode();\n }\n module.exports = isexe;\n isexe.sync = sync;\n function isexe(path11, options, cb) {\n if (typeof options === \"function\") {\n cb = options;\n options = {};\n }\n if (!cb) {\n if (typeof Promise !== \"function\") {\n throw new TypeError(\"callback not provided\");\n }\n return new Promise(function(resolve4, reject) {\n isexe(path11, options || {}, function(er, is) {\n if (er) {\n reject(er);\n } else {\n resolve4(is);\n }\n });\n });\n }\n core(path11, options || {}, function(er, is) {\n if (er) {\n if (er.code === \"EACCES\" || options && options.ignoreErrors) {\n er = null;\n is = false;\n }\n }\n cb(er, is);\n });\n }\n function sync(path11, options) {\n try {\n return core.sync(path11, options || {});\n } catch (er) {\n if (options && options.ignoreErrors || er.code === \"EACCES\") {\n return false;\n } else {\n throw er;\n }\n }\n }\n});\nvar require_which = __commonJS((exports, module) => {\n var isWindows = process.platform === \"win32\" || process.env.OSTYPE === \"cygwin\" || process.env.OSTYPE === \"msys\";\n var path11 = __require(\"path\");\n var COLON = isWindows ? \";\" : \":\";\n var isexe = require_isexe();\n var getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: \"ENOENT\" });\n var getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON;\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? [\"\"] : [\n ...isWindows ? [process.cwd()] : [],\n ...(opt.path || process.env.PATH || \"\").split(colon)\n ];\n const pathExtExe = isWindows ? opt.pathExt || process.env.PATHEXT || \".EXE;.CMD;.BAT;.COM\" : \"\";\n const pathExt = isWindows ? pathExtExe.split(colon) : [\"\"];\n if (isWindows) {\n if (cmd.indexOf(\".\") !== -1 && pathExt[0] !== \"\")\n pathExt.unshift(\"\");\n }\n return {\n pathEnv,\n pathExt,\n pathExtExe\n };\n };\n var which = (cmd, opt, cb) => {\n if (typeof opt === \"function\") {\n cb = opt;\n opt = {};\n }\n if (!opt)\n opt = {};\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);\n const found = [];\n const step = (i) => new Promise((resolve4, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve4(found) : reject(getNotFoundError(cmd));\n const ppRaw = pathEnv[i];\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;\n const pCmd = path11.join(pathPart, cmd);\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;\n resolve4(subStep(p, i, 0));\n });\n const subStep = (p, i, ii) => new Promise((resolve4, reject) => {\n if (ii === pathExt.length)\n return resolve4(step(i + 1));\n const ext = pathExt[ii];\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext);\n else\n return resolve4(p + ext);\n }\n return resolve4(subStep(p, i, ii + 1));\n });\n });\n return cb ? step(0).then((res) => cb(null, res), cb) : step(0);\n };\n var whichSync = (cmd, opt) => {\n opt = opt || {};\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);\n const found = [];\n for (let i = 0;i < pathEnv.length; i++) {\n const ppRaw = pathEnv[i];\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;\n const pCmd = path11.join(pathPart, cmd);\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;\n for (let j = 0;j < pathExt.length; j++) {\n const cur = p + pathExt[j];\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe });\n if (is) {\n if (opt.all)\n found.push(cur);\n else\n return cur;\n }\n } catch (ex) {}\n }\n }\n if (opt.all && found.length)\n return found;\n if (opt.nothrow)\n return null;\n throw getNotFoundError(cmd);\n };\n module.exports = which;\n which.sync = whichSync;\n});\nvar require_path_key = __commonJS((exports, module) => {\n var pathKey = (options = {}) => {\n const environment = options.env || process.env;\n const platform2 = options.platform || process.platform;\n if (platform2 !== \"win32\") {\n return \"PATH\";\n }\n return Object.keys(environment).reverse().find((key) => key.toUpperCase() === \"PATH\") || \"Path\";\n };\n module.exports = pathKey;\n module.exports.default = pathKey;\n});\nvar require_resolveCommand = __commonJS((exports, module) => {\n var path11 = __require(\"path\");\n var which = require_which();\n var getPathKey = require_path_key();\n function resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {}\n }\n let resolved;\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path11.delimiter : undefined\n });\n } catch (e) {} finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n if (resolved) {\n resolved = path11.resolve(hasCustomCwd ? parsed.options.cwd : \"\", resolved);\n }\n return resolved;\n }\n function resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n }\n module.exports = resolveCommand;\n});\nvar require_escape = __commonJS((exports, module) => {\n var metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n function escapeCommand(arg) {\n arg = arg.replace(metaCharsRegExp, \"^$1\");\n return arg;\n }\n function escapeArgument(arg, doubleEscapeMetaChars) {\n arg = `${arg}`;\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, \"$1$1\\\\\\\"\");\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, \"$1$1\");\n arg = `\"${arg}\"`;\n arg = arg.replace(metaCharsRegExp, \"^$1\");\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, \"^$1\");\n }\n return arg;\n }\n exports.command = escapeCommand;\n exports.argument = escapeArgument;\n});\nvar require_shebang_regex = __commonJS((exports, module) => {\n module.exports = /^#!(.*)/;\n});\nvar require_shebang_command = __commonJS((exports, module) => {\n var shebangRegex = require_shebang_regex();\n module.exports = (string = \"\") => {\n const match = string.match(shebangRegex);\n if (!match) {\n return null;\n }\n const [path11, argument] = match[0].replace(/#! ?/, \"\").split(\" \");\n const binary = path11.split(\"/\").pop();\n if (binary === \"env\") {\n return argument;\n }\n return argument ? `${binary} ${argument}` : binary;\n };\n});\nvar require_readShebang = __commonJS((exports, module) => {\n var fs8 = __require(\"fs\");\n var shebangCommand = require_shebang_command();\n function readShebang(command) {\n const size = 150;\n const buffer = Buffer.alloc(size);\n let fd;\n try {\n fd = fs8.openSync(command, \"r\");\n fs8.readSync(fd, buffer, 0, size, 0);\n fs8.closeSync(fd);\n } catch (e) {}\n return shebangCommand(buffer.toString());\n }\n module.exports = readShebang;\n});\nvar require_parse = __commonJS((exports, module) => {\n var path11 = __require(\"path\");\n var resolveCommand = require_resolveCommand();\n var escape = require_escape();\n var readShebang = require_readShebang();\n var isWin = process.platform === \"win32\";\n var isExecutableRegExp = /\\.(?:com|exe)$/i;\n var isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n function detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n const shebang = parsed.file && readShebang(parsed.file);\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n return resolveCommand(parsed);\n }\n return parsed.file;\n }\n function parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n const commandFile = detectShebang(parsed);\n const needsShell = !isExecutableRegExp.test(commandFile);\n if (parsed.options.forceShell || needsShell) {\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n parsed.command = path11.normalize(parsed.command);\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n const shellCommand = [parsed.command].concat(parsed.args).join(\" \");\n parsed.args = [\"/d\", \"/s\", \"/c\", `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || \"cmd.exe\";\n parsed.options.windowsVerbatimArguments = true;\n }\n return parsed;\n }\n function parse(command, args, options) {\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n args = args ? args.slice(0) : [];\n options = Object.assign({}, options);\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args\n }\n };\n return options.shell ? parsed : parseNonShell(parsed);\n }\n module.exports = parse;\n});\nvar require_enoent = __commonJS((exports, module) => {\n var isWin = process.platform === \"win32\";\n function notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: \"ENOENT\",\n errno: \"ENOENT\",\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args\n });\n }\n function hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n const originalEmit = cp.emit;\n cp.emit = function(name, arg1) {\n if (name === \"exit\") {\n const err = verifyENOENT(arg1, parsed);\n if (err) {\n return originalEmit.call(cp, \"error\", err);\n }\n }\n return originalEmit.apply(cp, arguments);\n };\n }\n function verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, \"spawn\");\n }\n return null;\n }\n function verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, \"spawnSync\");\n }\n return null;\n }\n module.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError\n };\n});\nvar require_cross_spawn = __commonJS((exports, module) => {\n var cp = __require(\"child_process\");\n var parse = require_parse();\n var enoent = require_enoent();\n function spawn5(command, args, options) {\n const parsed = parse(command, args, options);\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n enoent.hookChildProcess(spawned, parsed);\n return spawned;\n }\n function spawnSync5(command, args, options) {\n const parsed = parse(command, args, options);\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n return result;\n }\n module.exports = spawn5;\n module.exports.spawn = spawn5;\n module.exports.sync = spawnSync5;\n module.exports._parse = parse;\n module.exports._enoent = enoent;\n});\nvar require_dist = __commonJS((exports, module) => {\n var __create2 = Object.create;\n var __defProp2 = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames2 = Object.getOwnPropertyNames;\n var __getProtoOf2 = Object.getPrototypeOf;\n var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n var __export2 = (target, all) => {\n for (var name in all)\n __defProp2(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames2(from))\n if (!__hasOwnProp2.call(to, key) && key !== except)\n __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp2(target, \"default\", { value: mod, enumerable: true }) : target, mod));\n var __toCommonJS = (mod) => __copyProps(__defProp2({}, \"__esModule\", { value: true }), mod);\n var src_exports = {};\n __export2(src_exports, {\n Socks5Server: () => Socks5Server,\n createServer: () => createServer2,\n defaultConnectionHandler: () => connectionHandler_default\n });\n module.exports = __toCommonJS(src_exports);\n var import_net2 = __toESM2(__require(\"net\"));\n var Socks5ConnectionCommand = /* @__PURE__ */ ((Socks5ConnectionCommand2) => {\n Socks5ConnectionCommand2[Socks5ConnectionCommand2[\"connect\"] = 1] = \"connect\";\n Socks5ConnectionCommand2[Socks5ConnectionCommand2[\"bind\"] = 2] = \"bind\";\n Socks5ConnectionCommand2[Socks5ConnectionCommand2[\"udp\"] = 3] = \"udp\";\n return Socks5ConnectionCommand2;\n })(Socks5ConnectionCommand || {});\n var Socks5ConnectionStatus = /* @__PURE__ */ ((Socks5ConnectionStatus2) => {\n Socks5ConnectionStatus2[Socks5ConnectionStatus2[\"REQUEST_GRANTED\"] = 0] = \"REQUEST_GRANTED\";\n Socks5ConnectionStatus2[Socks5ConnectionStatus2[\"GENERAL_FAILURE\"] = 1] = \"GENERAL_FAILURE\";\n Socks5ConnectionStatus2[Socks5ConnectionStatus2[\"CONNECTION_NOT_ALLOWED\"] = 2] = \"CONNECTION_NOT_ALLOWED\";\n Socks5ConnectionStatus2[Socks5ConnectionStatus2[\"NETWORK_UNREACHABLE\"] = 3] = \"NETWORK_UNREACHABLE\";\n Socks5ConnectionStatus2[Socks5ConnectionStatus2[\"HOST_UNREACHABLE\"] = 4] = \"HOST_UNREACHABLE\";\n Socks5ConnectionStatus2[Socks5ConnectionStatus2[\"CONNECTION_REFUSED\"] = 5] = \"CONNECTION_REFUSED\";\n Socks5ConnectionStatus2[Socks5ConnectionStatus2[\"TTL_EXPIRED\"] = 6] = \"TTL_EXPIRED\";\n Socks5ConnectionStatus2[Socks5ConnectionStatus2[\"COMMAND_NOT_SUPPORTED\"] = 7] = \"COMMAND_NOT_SUPPORTED\";\n Socks5ConnectionStatus2[Socks5ConnectionStatus2[\"ADDRESS_TYPE_NOT_SUPPORTED\"] = 8] = \"ADDRESS_TYPE_NOT_SUPPORTED\";\n return Socks5ConnectionStatus2;\n })(Socks5ConnectionStatus || {});\n var Socks5Connection = class {\n constructor(server, socket) {\n this.errorHandler = () => {};\n this.metadata = {};\n this.socket = socket;\n this.server = server;\n socket.on(\"error\", this.errorHandler);\n socket.pause();\n this.handleGreeting();\n }\n readBytes(len) {\n return new Promise((resolve4) => {\n let buf = Buffer.allocUnsafe(len);\n let offset = 0;\n const dataListener = (chunk) => {\n const readAmount = Math.min(chunk.length, len - offset);\n chunk.copy(buf, offset, 0, readAmount);\n offset += readAmount;\n if (offset < len)\n return;\n this.socket.removeListener(\"data\", dataListener);\n this.socket.push(chunk.subarray(readAmount));\n resolve4(buf);\n this.socket.pause();\n };\n this.socket.on(\"data\", dataListener);\n this.socket.resume();\n });\n }\n async handleGreeting() {\n const ver = (await this.readBytes(1)).readUInt8();\n if (ver !== 5)\n return this.socket.destroy();\n const authMethodsAmount = (await this.readBytes(1)).readUInt8();\n if (authMethodsAmount > 128 || authMethodsAmount === 0)\n return this.socket.destroy();\n const authMethods = await this.readBytes(authMethodsAmount);\n const authMethodByteCode = this.server.authHandler ? 2 : 0;\n if (!authMethods.includes(authMethodByteCode)) {\n this.socket.write(Buffer.from([\n 5,\n 255\n ]));\n return this.socket.destroy();\n }\n this.socket.write(Buffer.from([\n 5,\n authMethodByteCode\n ]));\n if (this.server.authHandler)\n this.handleUserPassword();\n else\n this.handleConnectionRequest();\n }\n async handleUserPassword() {\n await this.readBytes(1);\n const usernameLength = (await this.readBytes(1)).readUint8();\n const username = (await this.readBytes(usernameLength)).toString();\n const passwordLength = (await this.readBytes(1)).readUint8();\n const password = (await this.readBytes(passwordLength)).toString();\n this.username = username;\n this.password = password;\n let calledBack = false;\n const acceptCallback = () => {\n if (calledBack)\n return;\n calledBack = true;\n this.socket.write(Buffer.from([\n 1,\n 0\n ]));\n this.handleConnectionRequest();\n };\n const denyCallback = () => {\n if (calledBack)\n return;\n calledBack = true;\n this.socket.write(Buffer.from([\n 1,\n 1\n ]));\n this.socket.destroy();\n };\n const resp = await this.server.authHandler(this, acceptCallback, denyCallback);\n if (resp === true)\n acceptCallback();\n else if (resp === false)\n denyCallback();\n }\n async handleConnectionRequest() {\n await this.readBytes(1);\n const commandByte = (await this.readBytes(1))[0];\n const command = Socks5ConnectionCommand[commandByte];\n if (!command)\n return this.socket.destroy();\n this.command = command;\n await this.readBytes(1);\n const addrType = (await this.readBytes(1)).readUInt8();\n let address = \"\";\n switch (addrType) {\n case 1:\n address = (await this.readBytes(4)).join(\".\");\n break;\n case 3:\n const hostLength = (await this.readBytes(1)).readUInt8();\n address = (await this.readBytes(hostLength)).toString();\n break;\n case 4:\n const bytes = await this.readBytes(16);\n for (let i2 = 0;i2 < 16; i2++) {\n if (i2 % 2 === 0 && i2 > 0)\n address += \":\";\n address += `${bytes[i2] < 16 ? \"0\" : \"\"}${bytes[i2].toString(16)}`;\n }\n break;\n default:\n this.socket.destroy();\n return;\n }\n const port = (await this.readBytes(2)).readUInt16BE();\n if (!this.server.supportedCommands.has(command)) {\n this.socket.write(Buffer.from([5, 7]));\n return this.socket.destroy();\n }\n this.destAddress = address;\n this.destPort = port;\n let calledBack = false;\n const acceptCallback = () => {\n if (calledBack)\n return;\n calledBack = true;\n this.connect();\n };\n if (!this.server.rulesetValidator)\n return acceptCallback();\n const denyCallback = () => {\n if (calledBack)\n return;\n calledBack = true;\n this.socket.write(Buffer.from([\n 5,\n 2,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]));\n this.socket.destroy();\n };\n const resp = await this.server.rulesetValidator(this, acceptCallback, denyCallback);\n if (resp === true)\n acceptCallback();\n else if (resp === false)\n denyCallback();\n }\n connect() {\n this.socket.removeListener(\"error\", this.errorHandler);\n this.server.connectionHandler(this, (status) => {\n if (Socks5ConnectionStatus[status] === undefined)\n throw new Error(`\"${status}\" is not a valid status.`);\n this.socket.write(Buffer.from([\n 5,\n Socks5ConnectionStatus[status],\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]));\n if (status !== \"REQUEST_GRANTED\") {\n this.socket.destroy();\n }\n });\n this.socket.resume();\n }\n };\n var import_net3 = __toESM2(__require(\"net\"));\n function connectionHandler_default(connection, sendStatus) {\n if (connection.command !== \"connect\")\n return sendStatus(\"COMMAND_NOT_SUPPORTED\");\n connection.socket.on(\"error\", () => {});\n const stream = import_net3.default.createConnection({\n host: connection.destAddress,\n port: connection.destPort\n });\n stream.setNoDelay();\n let streamOpened = false;\n stream.on(\"error\", (err) => {\n if (!streamOpened) {\n switch (err.code) {\n case \"EINVAL\":\n case \"ENOENT\":\n case \"ENOTFOUND\":\n case \"ETIMEDOUT\":\n case \"EADDRNOTAVAIL\":\n case \"EHOSTUNREACH\":\n sendStatus(\"HOST_UNREACHABLE\");\n break;\n case \"ENETUNREACH\":\n sendStatus(\"NETWORK_UNREACHABLE\");\n break;\n case \"ECONNREFUSED\":\n sendStatus(\"CONNECTION_REFUSED\");\n break;\n default:\n sendStatus(\"GENERAL_FAILURE\");\n }\n }\n });\n stream.on(\"ready\", () => {\n streamOpened = true;\n sendStatus(\"REQUEST_GRANTED\");\n connection.socket.pipe(stream).pipe(connection.socket);\n });\n connection.socket.on(\"close\", () => stream.destroy());\n return stream;\n }\n var Socks5Server = class {\n constructor() {\n this.supportedCommands = /* @__PURE__ */ new Set([\"connect\"]);\n this.connectionHandler = connectionHandler_default;\n this.server = import_net2.default.createServer((socket) => {\n socket.setNoDelay();\n this._handleConnection(socket);\n });\n }\n listen(...args) {\n this.server.listen(...args);\n return this;\n }\n close(callback) {\n this.server.close(callback);\n return this;\n }\n setAuthHandler(handler) {\n this.authHandler = handler;\n return this;\n }\n disableAuthHandler() {\n this.authHandler = undefined;\n return this;\n }\n setRulesetValidator(handler) {\n this.rulesetValidator = handler;\n return this;\n }\n disableRulesetValidator() {\n this.rulesetValidator = undefined;\n return this;\n }\n setConnectionHandler(handler) {\n this.connectionHandler = handler;\n return this;\n }\n useDefaultConnectionHandler() {\n this.connectionHandler = connectionHandler_default;\n return this;\n }\n _handleConnection(socket) {\n new Socks5Connection(this, socket);\n return this;\n }\n };\n function createServer2(opts) {\n const server = new Socks5Server;\n if (opts?.auth)\n server.setAuthHandler((conn) => {\n return conn.username === opts.auth.username && conn.password === opts.auth.password;\n });\n if (opts?.port)\n server.listen(opts.port, opts.hostname);\n return server;\n }\n});\nvar require_quote = __commonJS((exports, module) => {\n module.exports = function quote(xs) {\n return xs.map(function(s) {\n if (s === \"\") {\n return \"''\";\n }\n if (s && typeof s === \"object\") {\n return s.op.replace(/(.)/g, \"\\\\$1\");\n }\n if (/[\"\\s\\\\]/.test(s) && !/'/.test(s)) {\n return \"'\" + s.replace(/(['])/g, \"\\\\$1\") + \"'\";\n }\n if (/[\"'\\s]/.test(s)) {\n return '\"' + s.replace(/([\"\\\\$`!])/g, \"\\\\$1\") + '\"';\n }\n return String(s).replace(/([A-Za-z]:)?([#!\"$&'()*,:;<=>?@[\\\\\\]^`{|}])/g, \"$1\\\\$2\");\n }).join(\" \");\n };\n});\nvar require_parse2 = __commonJS((exports, module) => {\n var CONTROL = \"(?:\" + [\n \"\\\\|\\\\|\",\n \"\\\\&\\\\&\",\n \";;\",\n \"\\\\|\\\\&\",\n \"\\\\<\\\\(\",\n \"\\\\<\\\\<\\\\<\",\n \">>\",\n \">\\\\&\",\n \"<\\\\&\",\n \"[&;()|<>]\"\n ].join(\"|\") + \")\";\n var controlRE = new RegExp(\"^\" + CONTROL + \"$\");\n var META = \"|&;()<> \\\\t\";\n var SINGLE_QUOTE = '\"((\\\\\\\\\"|[^\"])*?)\"';\n var DOUBLE_QUOTE = \"'((\\\\\\\\'|[^'])*?)'\";\n var hash = /^#$/;\n var SQ = \"'\";\n var DQ = '\"';\n var DS = \"$\";\n var TOKEN = \"\";\n var mult = 4294967296;\n for (i2 = 0;i2 < 4; i2++) {\n TOKEN += (mult * Math.random()).toString(16);\n }\n var i2;\n var startsWithToken = new RegExp(\"^\" + TOKEN);\n function matchAll(s, r) {\n var origIndex = r.lastIndex;\n var matches = [];\n var matchObj;\n while (matchObj = r.exec(s)) {\n matches.push(matchObj);\n if (r.lastIndex === matchObj.index) {\n r.lastIndex += 1;\n }\n }\n r.lastIndex = origIndex;\n return matches;\n }\n function getVar(env, pre, key) {\n var r = typeof env === \"function\" ? env(key) : env[key];\n if (typeof r === \"undefined\" && key != \"\") {\n r = \"\";\n } else if (typeof r === \"undefined\") {\n r = \"$\";\n }\n if (typeof r === \"object\") {\n return pre + TOKEN + JSON.stringify(r) + TOKEN;\n }\n return pre + r;\n }\n function parseInternal(string, env, opts) {\n if (!opts) {\n opts = {};\n }\n var BS = opts.escape || \"\\\\\";\n var BAREWORD = \"(\\\\\" + BS + `['\"` + META + `]|[^\\\\s'\"` + META + \"])+\";\n var chunker = new RegExp([\n \"(\" + CONTROL + \")\",\n \"(\" + BAREWORD + \"|\" + SINGLE_QUOTE + \"|\" + DOUBLE_QUOTE + \")+\"\n ].join(\"|\"), \"g\");\n var matches = matchAll(string, chunker);\n if (matches.length === 0) {\n return [];\n }\n if (!env) {\n env = {};\n }\n var commented = false;\n return matches.map(function(match) {\n var s = match[0];\n if (!s || commented) {\n return;\n }\n if (controlRE.test(s)) {\n return { op: s };\n }\n var quote = false;\n var esc = false;\n var out = \"\";\n var isGlob = false;\n var i3;\n function parseEnvVar() {\n i3 += 1;\n var varend;\n var varname;\n var char = s.charAt(i3);\n if (char === \"{\") {\n i3 += 1;\n if (s.charAt(i3) === \"}\") {\n throw new Error(\"Bad substitution: \" + s.slice(i3 - 2, i3 + 1));\n }\n varend = s.indexOf(\"}\", i3);\n if (varend < 0) {\n throw new Error(\"Bad substitution: \" + s.slice(i3));\n }\n varname = s.slice(i3, varend);\n i3 = varend;\n } else if (/[*@#?$!_-]/.test(char)) {\n varname = char;\n i3 += 1;\n } else {\n var slicedFromI = s.slice(i3);\n varend = slicedFromI.match(/[^\\w\\d_]/);\n if (!varend) {\n varname = slicedFromI;\n i3 = s.length;\n } else {\n varname = slicedFromI.slice(0, varend.index);\n i3 += varend.index - 1;\n }\n }\n return getVar(env, \"\", varname);\n }\n for (i3 = 0;i3 < s.length; i3++) {\n var c3 = s.charAt(i3);\n isGlob = isGlob || !quote && (c3 === \"*\" || c3 === \"?\");\n if (esc) {\n out += c3;\n esc = false;\n } else if (quote) {\n if (c3 === quote) {\n quote = false;\n } else if (quote == SQ) {\n out += c3;\n } else {\n if (c3 === BS) {\n i3 += 1;\n c3 = s.charAt(i3);\n if (c3 === DQ || c3 === BS || c3 === DS) {\n out += c3;\n } else {\n out += BS + c3;\n }\n } else if (c3 === DS) {\n out += parseEnvVar();\n } else {\n out += c3;\n }\n }\n } else if (c3 === DQ || c3 === SQ) {\n quote = c3;\n } else if (controlRE.test(c3)) {\n return { op: s };\n } else if (hash.test(c3)) {\n commented = true;\n var commentObj = { comment: string.slice(match.index + i3 + 1) };\n if (out.length) {\n return [out, commentObj];\n }\n return [commentObj];\n } else if (c3 === BS) {\n esc = true;\n } else if (c3 === DS) {\n out += parseEnvVar();\n } else {\n out += c3;\n }\n }\n if (isGlob) {\n return { op: \"glob\", pattern: out };\n }\n return out;\n }).reduce(function(prev, arg) {\n return typeof arg === \"undefined\" ? prev : prev.concat(arg);\n }, []);\n }\n module.exports = function parse(s, env, opts) {\n var mapped = parseInternal(s, env, opts);\n if (typeof env !== \"function\") {\n return mapped;\n }\n return mapped.reduce(function(acc, s2) {\n if (typeof s2 === \"object\") {\n return acc.concat(s2);\n }\n var xs = s2.split(RegExp(\"(\" + TOKEN + \".*?\" + TOKEN + \")\", \"g\"));\n if (xs.length === 1) {\n return acc.concat(xs[0]);\n }\n return acc.concat(xs.filter(Boolean).map(function(x) {\n if (startsWithToken.test(x)) {\n return JSON.parse(x.split(TOKEN)[1]);\n }\n return x;\n }));\n }, []);\n };\n});\nvar require_shell_quote = __commonJS((exports) => {\n exports.quote = require_quote();\n exports.parse = require_parse2();\n});\nvar urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nvar POOL_SIZE_MULTIPLIER = 128;\nvar pool;\nvar poolOffset;\nfunction fillPool(bytes) {\n if (!pool || pool.length < bytes) {\n pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);\n crypto.getRandomValues(pool);\n poolOffset = 0;\n } else if (poolOffset + bytes > pool.length) {\n crypto.getRandomValues(pool);\n poolOffset = 0;\n }\n poolOffset += bytes;\n}\nfunction nanoid(size = 21) {\n fillPool(size |= 0);\n let id = \"\";\n for (let i = poolOffset - size;i < poolOffset; i++) {\n id += urlAlphabet[pool[i] & 63];\n }\n return id;\n}\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\nvar safeNormalizeFileUrl = (file, name) => {\n const fileString = normalizeFileUrl(normalizeDenoExecPath(file));\n if (typeof fileString !== \"string\") {\n throw new TypeError(`${name} must be a string or a file URL: ${fileString}.`);\n }\n return fileString;\n};\nvar normalizeDenoExecPath = (file) => isDenoExecPath(file) ? file.toString() : file;\nvar isDenoExecPath = (file) => typeof file !== \"string\" && file && Object.getPrototypeOf(file) === String.prototype;\nvar normalizeFileUrl = (file) => file instanceof URL ? fileURLToPath(file) : file;\nvar normalizeParameters = (rawFile, rawArguments = [], rawOptions = {}) => {\n const filePath = safeNormalizeFileUrl(rawFile, \"First argument\");\n const [commandArguments, options] = isPlainObject(rawArguments) ? [[], rawArguments] : [rawArguments, rawOptions];\n if (!Array.isArray(commandArguments)) {\n throw new TypeError(`Second argument must be either an array of arguments or an options object: ${commandArguments}`);\n }\n if (commandArguments.some((commandArgument) => typeof commandArgument === \"object\" && commandArgument !== null)) {\n throw new TypeError(`Second argument must be an array of strings: ${commandArguments}`);\n }\n const normalizedArguments = commandArguments.map(String);\n const nullByteArgument = normalizedArguments.find((normalizedArgument) => normalizedArgument.includes(\"\\x00\"));\n if (nullByteArgument !== undefined) {\n throw new TypeError(`Arguments cannot contain null bytes (\"\\\\0\"): ${nullByteArgument}`);\n }\n if (!isPlainObject(options)) {\n throw new TypeError(`Last argument must be an options object: ${options}`);\n }\n return [filePath, normalizedArguments, options];\n};\nvar { toString: objectToString } = Object.prototype;\nvar isArrayBuffer = (value) => objectToString.call(value) === \"[object ArrayBuffer]\";\nvar isUint8Array = (value) => objectToString.call(value) === \"[object Uint8Array]\";\nvar bufferToUint8Array = (buffer) => new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\nvar textEncoder = new TextEncoder;\nvar stringToUint8Array = (string) => textEncoder.encode(string);\nvar textDecoder = new TextDecoder;\nvar uint8ArrayToString = (uint8Array) => textDecoder.decode(uint8Array);\nvar joinToString = (uint8ArraysOrStrings, encoding) => {\n const strings = uint8ArraysToStrings(uint8ArraysOrStrings, encoding);\n return strings.join(\"\");\n};\nvar uint8ArraysToStrings = (uint8ArraysOrStrings, encoding) => {\n if (encoding === \"utf8\" && uint8ArraysOrStrings.every((uint8ArrayOrString) => typeof uint8ArrayOrString === \"string\")) {\n return uint8ArraysOrStrings;\n }\n const decoder = new StringDecoder(encoding);\n const strings = uint8ArraysOrStrings.map((uint8ArrayOrString) => typeof uint8ArrayOrString === \"string\" ? stringToUint8Array(uint8ArrayOrString) : uint8ArrayOrString).map((uint8Array) => decoder.write(uint8Array));\n const finalString = decoder.end();\n return finalString === \"\" ? strings : [...strings, finalString];\n};\nvar joinToUint8Array = (uint8ArraysOrStrings) => {\n if (uint8ArraysOrStrings.length === 1 && isUint8Array(uint8ArraysOrStrings[0])) {\n return uint8ArraysOrStrings[0];\n }\n return concatUint8Arrays(stringsToUint8Arrays(uint8ArraysOrStrings));\n};\nvar stringsToUint8Arrays = (uint8ArraysOrStrings) => uint8ArraysOrStrings.map((uint8ArrayOrString) => typeof uint8ArrayOrString === \"string\" ? stringToUint8Array(uint8ArrayOrString) : uint8ArrayOrString);\nvar concatUint8Arrays = (uint8Arrays) => {\n const result = new Uint8Array(getJoinLength(uint8Arrays));\n let index = 0;\n for (const uint8Array of uint8Arrays) {\n result.set(uint8Array, index);\n index += uint8Array.length;\n }\n return result;\n};\nvar getJoinLength = (uint8Arrays) => {\n let joinLength = 0;\n for (const uint8Array of uint8Arrays) {\n joinLength += uint8Array.length;\n }\n return joinLength;\n};\nvar isTemplateString = (templates) => Array.isArray(templates) && Array.isArray(templates.raw);\nvar parseTemplates = (templates, expressions) => {\n let tokens = [];\n for (const [index, template] of templates.entries()) {\n tokens = parseTemplate({\n templates,\n expressions,\n tokens,\n index,\n template\n });\n }\n if (tokens.length === 0) {\n throw new TypeError(\"Template script must not be empty\");\n }\n const [file, ...commandArguments] = tokens;\n return [file, commandArguments, {}];\n};\nvar parseTemplate = ({ templates, expressions, tokens, index, template }) => {\n if (template === undefined) {\n throw new TypeError(`Invalid backslash sequence: ${templates.raw[index]}`);\n }\n const { nextTokens, leadingWhitespaces, trailingWhitespaces } = splitByWhitespaces(template, templates.raw[index]);\n const newTokens = concatTokens(tokens, nextTokens, leadingWhitespaces);\n if (index === expressions.length) {\n return newTokens;\n }\n const expression = expressions[index];\n const expressionTokens = Array.isArray(expression) ? expression.map((expression2) => parseExpression(expression2)) : [parseExpression(expression)];\n return concatTokens(newTokens, expressionTokens, trailingWhitespaces);\n};\nvar splitByWhitespaces = (template, rawTemplate) => {\n if (rawTemplate.length === 0) {\n return { nextTokens: [], leadingWhitespaces: false, trailingWhitespaces: false };\n }\n const nextTokens = [];\n let templateStart = 0;\n const leadingWhitespaces = DELIMITERS.has(rawTemplate[0]);\n for (let templateIndex = 0, rawIndex = 0;templateIndex < template.length; templateIndex += 1, rawIndex += 1) {\n const rawCharacter = rawTemplate[rawIndex];\n if (DELIMITERS.has(rawCharacter)) {\n if (templateStart !== templateIndex) {\n nextTokens.push(template.slice(templateStart, templateIndex));\n }\n templateStart = templateIndex + 1;\n } else if (rawCharacter === \"\\\\\") {\n const nextRawCharacter = rawTemplate[rawIndex + 1];\n if (nextRawCharacter === `\n`) {\n templateIndex -= 1;\n rawIndex += 1;\n } else if (nextRawCharacter === \"u\" && rawTemplate[rawIndex + 2] === \"{\") {\n rawIndex = rawTemplate.indexOf(\"}\", rawIndex + 3);\n } else {\n rawIndex += ESCAPE_LENGTH[nextRawCharacter] ?? 1;\n }\n }\n }\n const trailingWhitespaces = templateStart === template.length;\n if (!trailingWhitespaces) {\n nextTokens.push(template.slice(templateStart));\n }\n return { nextTokens, leadingWhitespaces, trailingWhitespaces };\n};\nvar DELIMITERS = new Set([\" \", \"\\t\", \"\\r\", `\n`]);\nvar ESCAPE_LENGTH = { x: 3, u: 5 };\nvar concatTokens = (tokens, nextTokens, isSeparated) => isSeparated || tokens.length === 0 || nextTokens.length === 0 ? [...tokens, ...nextTokens] : [\n ...tokens.slice(0, -1),\n `${tokens.at(-1)}${nextTokens[0]}`,\n ...nextTokens.slice(1)\n];\nvar parseExpression = (expression) => {\n const typeOfExpression = typeof expression;\n if (typeOfExpression === \"string\") {\n return expression;\n }\n if (typeOfExpression === \"number\") {\n return String(expression);\n }\n if (isPlainObject(expression) && ((\"stdout\" in expression) || (\"isMaxBuffer\" in expression))) {\n return getSubprocessResult(expression);\n }\n if (expression instanceof ChildProcess || Object.prototype.toString.call(expression) === \"[object Promise]\") {\n throw new TypeError(\"Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}.\");\n }\n throw new TypeError(`Unexpected \"${typeOfExpression}\" in template expression`);\n};\nvar getSubprocessResult = ({ stdout }) => {\n if (typeof stdout === \"string\") {\n return stdout;\n }\n if (isUint8Array(stdout)) {\n return uint8ArrayToString(stdout);\n }\n if (stdout === undefined) {\n throw new TypeError(`Missing result.stdout in template expression. This is probably due to the previous subprocess' \"stdout\" option.`);\n }\n throw new TypeError(`Unexpected \"${typeof stdout}\" stdout in template expression`);\n};\nvar isStandardStream = (stream) => STANDARD_STREAMS.includes(stream);\nvar STANDARD_STREAMS = [process2.stdin, process2.stdout, process2.stderr];\nvar STANDARD_STREAMS_ALIASES = [\"stdin\", \"stdout\", \"stderr\"];\nvar getStreamName = (fdNumber) => STANDARD_STREAMS_ALIASES[fdNumber] ?? `stdio[${fdNumber}]`;\nvar normalizeFdSpecificOptions = (options) => {\n const optionsCopy = { ...options };\n for (const optionName of FD_SPECIFIC_OPTIONS) {\n optionsCopy[optionName] = normalizeFdSpecificOption(options, optionName);\n }\n return optionsCopy;\n};\nvar normalizeFdSpecificOption = (options, optionName) => {\n const optionBaseArray = Array.from({ length: getStdioLength(options) + 1 });\n const optionArray = normalizeFdSpecificValue(options[optionName], optionBaseArray, optionName);\n return addDefaultValue(optionArray, optionName);\n};\nvar getStdioLength = ({ stdio }) => Array.isArray(stdio) ? Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length) : STANDARD_STREAMS_ALIASES.length;\nvar normalizeFdSpecificValue = (optionValue, optionArray, optionName) => isPlainObject(optionValue) ? normalizeOptionObject(optionValue, optionArray, optionName) : optionArray.fill(optionValue);\nvar normalizeOptionObject = (optionValue, optionArray, optionName) => {\n for (const fdName of Object.keys(optionValue).sort(compareFdName)) {\n for (const fdNumber of parseFdName(fdName, optionName, optionArray)) {\n optionArray[fdNumber] = optionValue[fdName];\n }\n }\n return optionArray;\n};\nvar compareFdName = (fdNameA, fdNameB) => getFdNameOrder(fdNameA) < getFdNameOrder(fdNameB) ? 1 : -1;\nvar getFdNameOrder = (fdName) => {\n if (fdName === \"stdout\" || fdName === \"stderr\") {\n return 0;\n }\n return fdName === \"all\" ? 2 : 1;\n};\nvar parseFdName = (fdName, optionName, optionArray) => {\n if (fdName === \"ipc\") {\n return [optionArray.length - 1];\n }\n const fdNumber = parseFd(fdName);\n if (fdNumber === undefined || fdNumber === 0) {\n throw new TypeError(`\"${optionName}.${fdName}\" is invalid.\nIt must be \"${optionName}.stdout\", \"${optionName}.stderr\", \"${optionName}.all\", \"${optionName}.ipc\", or \"${optionName}.fd3\", \"${optionName}.fd4\" (and so on).`);\n }\n if (fdNumber >= optionArray.length) {\n throw new TypeError(`\"${optionName}.${fdName}\" is invalid: that file descriptor does not exist.\nPlease set the \"stdio\" option to ensure that file descriptor exists.`);\n }\n return fdNumber === \"all\" ? [1, 2] : [fdNumber];\n};\nvar parseFd = (fdName) => {\n if (fdName === \"all\") {\n return fdName;\n }\n if (STANDARD_STREAMS_ALIASES.includes(fdName)) {\n return STANDARD_STREAMS_ALIASES.indexOf(fdName);\n }\n const regexpResult = FD_REGEXP.exec(fdName);\n if (regexpResult !== null) {\n return Number(regexpResult[1]);\n }\n};\nvar FD_REGEXP = /^fd(\\d+)$/;\nvar addDefaultValue = (optionArray, optionName) => optionArray.map((optionValue) => optionValue === undefined ? DEFAULT_OPTIONS[optionName] : optionValue);\nvar verboseDefault = debuglog(\"execa\").enabled ? \"full\" : \"none\";\nvar DEFAULT_OPTIONS = {\n lines: false,\n buffer: true,\n maxBuffer: 1000 * 1000 * 100,\n verbose: verboseDefault,\n stripFinalNewline: true\n};\nvar FD_SPECIFIC_OPTIONS = [\"lines\", \"buffer\", \"maxBuffer\", \"verbose\", \"stripFinalNewline\"];\nvar getFdSpecificValue = (optionArray, fdNumber) => fdNumber === \"ipc\" ? optionArray.at(-1) : optionArray[fdNumber];\nvar isVerbose = ({ verbose }, fdNumber) => getFdVerbose(verbose, fdNumber) !== \"none\";\nvar isFullVerbose = ({ verbose }, fdNumber) => ![\"none\", \"short\"].includes(getFdVerbose(verbose, fdNumber));\nvar getVerboseFunction = ({ verbose }, fdNumber) => {\n const fdVerbose = getFdVerbose(verbose, fdNumber);\n return isVerboseFunction(fdVerbose) ? fdVerbose : undefined;\n};\nvar getFdVerbose = (verbose, fdNumber) => fdNumber === undefined ? getFdGenericVerbose(verbose) : getFdSpecificValue(verbose, fdNumber);\nvar getFdGenericVerbose = (verbose) => verbose.find((fdVerbose) => isVerboseFunction(fdVerbose)) ?? VERBOSE_VALUES.findLast((fdVerbose) => verbose.includes(fdVerbose));\nvar isVerboseFunction = (fdVerbose) => typeof fdVerbose === \"function\";\nvar VERBOSE_VALUES = [\"none\", \"short\", \"full\"];\nvar joinCommand = (filePath, rawArguments) => {\n const fileAndArguments = [filePath, ...rawArguments];\n const command = fileAndArguments.join(\" \");\n const escapedCommand = fileAndArguments.map((fileAndArgument) => quoteString(escapeControlCharacters(fileAndArgument))).join(\" \");\n return { command, escapedCommand };\n};\nvar escapeLines = (lines) => stripVTControlCharacters(lines).split(`\n`).map((line) => escapeControlCharacters(line)).join(`\n`);\nvar escapeControlCharacters = (line) => line.replaceAll(SPECIAL_CHAR_REGEXP, (character) => escapeControlCharacter(character));\nvar escapeControlCharacter = (character) => {\n const commonEscape = COMMON_ESCAPES[character];\n if (commonEscape !== undefined) {\n return commonEscape;\n }\n const codepoint = character.codePointAt(0);\n const codepointHex = codepoint.toString(16);\n return codepoint <= ASTRAL_START ? `\\\\u${codepointHex.padStart(4, \"0\")}` : `\\\\U${codepointHex}`;\n};\nvar getSpecialCharRegExp = () => {\n try {\n return new RegExp(\"\\\\p{Separator}|\\\\p{Other}\", \"gu\");\n } catch {\n return /[\\s\\u0000-\\u001F\\u007F-\\u009F\\u00AD]/g;\n }\n};\nvar SPECIAL_CHAR_REGEXP = getSpecialCharRegExp();\nvar COMMON_ESCAPES = {\n \" \": \" \",\n \"\\b\": \"\\\\b\",\n \"\\f\": \"\\\\f\",\n \"\\n\": \"\\\\n\",\n \"\\r\": \"\\\\r\",\n \"\\t\": \"\\\\t\"\n};\nvar ASTRAL_START = 65535;\nvar quoteString = (escapedArgument) => {\n if (NO_ESCAPE_REGEXP.test(escapedArgument)) {\n return escapedArgument;\n }\n return platform === \"win32\" ? `\"${escapedArgument.replaceAll('\"', '\"\"')}\"` : `'${escapedArgument.replaceAll(\"'\", \"'\\\\''\")}'`;\n};\nvar NO_ESCAPE_REGEXP = /^[\\w./-]+$/;\nfunction isUnicodeSupported() {\n const { env } = process3;\n const { TERM, TERM_PROGRAM } = env;\n if (process3.platform !== \"win32\") {\n return TERM !== \"linux\";\n }\n return Boolean(env.WT_SESSION) || Boolean(env.TERMINUS_SUBLIME) || env.ConEmuTask === \"{cmd::Cmder}\" || TERM_PROGRAM === \"Terminus-Sublime\" || TERM_PROGRAM === \"vscode\" || TERM === \"xterm-256color\" || TERM === \"alacritty\" || TERM === \"rxvt-unicode\" || TERM === \"rxvt-unicode-256color\" || env.TERMINAL_EMULATOR === \"JetBrains-JediTerm\";\n}\nvar common = {\n circleQuestionMark: \"(?)\",\n questionMarkPrefix: \"(?)\",\n square: \"█\",\n squareDarkShade: \"▓\",\n squareMediumShade: \"▒\",\n squareLightShade: \"░\",\n squareTop: \"▀\",\n squareBottom: \"▄\",\n squareLeft: \"▌\",\n squareRight: \"▐\",\n squareCenter: \"■\",\n bullet: \"●\",\n dot: \"․\",\n ellipsis: \"…\",\n pointerSmall: \"›\",\n triangleUp: \"▲\",\n triangleUpSmall: \"▴\",\n triangleDown: \"▼\",\n triangleDownSmall: \"▾\",\n triangleLeftSmall: \"◂\",\n triangleRightSmall: \"▸\",\n home: \"⌂\",\n heart: \"♥\",\n musicNote: \"♪\",\n musicNoteBeamed: \"♫\",\n arrowUp: \"↑\",\n arrowDown: \"↓\",\n arrowLeft: \"←\",\n arrowRight: \"→\",\n arrowLeftRight: \"↔\",\n arrowUpDown: \"↕\",\n almostEqual: \"≈\",\n notEqual: \"≠\",\n lessOrEqual: \"≤\",\n greaterOrEqual: \"≥\",\n identical: \"≡\",\n infinity: \"∞\",\n subscriptZero: \"₀\",\n subscriptOne: \"₁\",\n subscriptTwo: \"₂\",\n subscriptThree: \"₃\",\n subscriptFour: \"₄\",\n subscriptFive: \"₅\",\n subscriptSix: \"₆\",\n subscriptSeven: \"₇\",\n subscriptEight: \"₈\",\n subscriptNine: \"₉\",\n oneHalf: \"½\",\n oneThird: \"⅓\",\n oneQuarter: \"¼\",\n oneFifth: \"⅕\",\n oneSixth: \"⅙\",\n oneEighth: \"⅛\",\n twoThirds: \"⅔\",\n twoFifths: \"⅖\",\n threeQuarters: \"¾\",\n threeFifths: \"⅗\",\n threeEighths: \"⅜\",\n fourFifths: \"⅘\",\n fiveSixths: \"⅚\",\n fiveEighths: \"⅝\",\n sevenEighths: \"⅞\",\n line: \"─\",\n lineBold: \"━\",\n lineDouble: \"═\",\n lineDashed0: \"┄\",\n lineDashed1: \"┅\",\n lineDashed2: \"┈\",\n lineDashed3: \"┉\",\n lineDashed4: \"╌\",\n lineDashed5: \"╍\",\n lineDashed6: \"╴\",\n lineDashed7: \"╶\",\n lineDashed8: \"╸\",\n lineDashed9: \"╺\",\n lineDashed10: \"╼\",\n lineDashed11: \"╾\",\n lineDashed12: \"−\",\n lineDashed13: \"–\",\n lineDashed14: \"‐\",\n lineDashed15: \"⁃\",\n lineVertical: \"│\",\n lineVerticalBold: \"┃\",\n lineVerticalDouble: \"║\",\n lineVerticalDashed0: \"┆\",\n lineVerticalDashed1: \"┇\",\n lineVerticalDashed2: \"┊\",\n lineVerticalDashed3: \"┋\",\n lineVerticalDashed4: \"╎\",\n lineVerticalDashed5: \"╏\",\n lineVerticalDashed6: \"╵\",\n lineVerticalDashed7: \"╷\",\n lineVerticalDashed8: \"╹\",\n lineVerticalDashed9: \"╻\",\n lineVerticalDashed10: \"╽\",\n lineVerticalDashed11: \"╿\",\n lineDownLeft: \"┐\",\n lineDownLeftArc: \"╮\",\n lineDownBoldLeftBold: \"┓\",\n lineDownBoldLeft: \"┒\",\n lineDownLeftBold: \"┑\",\n lineDownDoubleLeftDouble: \"╗\",\n lineDownDoubleLeft: \"╖\",\n lineDownLeftDouble: \"╕\",\n lineDownRight: \"┌\",\n lineDownRightArc: \"╭\",\n lineDownBoldRightBold: \"┏\",\n lineDownBoldRight: \"┎\",\n lineDownRightBold: \"┍\",\n lineDownDoubleRightDouble: \"╔\",\n lineDownDoubleRight: \"╓\",\n lineDownRightDouble: \"╒\",\n lineUpLeft: \"┘\",\n lineUpLeftArc: \"╯\",\n lineUpBoldLeftBold: \"┛\",\n lineUpBoldLeft: \"┚\",\n lineUpLeftBold: \"┙\",\n lineUpDoubleLeftDouble: \"╝\",\n lineUpDoubleLeft: \"╜\",\n lineUpLeftDouble: \"╛\",\n lineUpRight: \"└\",\n lineUpRightArc: \"╰\",\n lineUpBoldRightBold: \"┗\",\n lineUpBoldRight: \"┖\",\n lineUpRightBold: \"┕\",\n lineUpDoubleRightDouble: \"╚\",\n lineUpDoubleRight: \"╙\",\n lineUpRightDouble: \"╘\",\n lineUpDownLeft: \"┤\",\n lineUpBoldDownBoldLeftBold: \"┫\",\n lineUpBoldDownBoldLeft: \"┨\",\n lineUpDownLeftBold: \"┥\",\n lineUpBoldDownLeftBold: \"┩\",\n lineUpDownBoldLeftBold: \"┪\",\n lineUpDownBoldLeft: \"┧\",\n lineUpBoldDownLeft: \"┦\",\n lineUpDoubleDownDoubleLeftDouble: \"╣\",\n lineUpDoubleDownDoubleLeft: \"╢\",\n lineUpDownLeftDouble: \"╡\",\n lineUpDownRight: \"├\",\n lineUpBoldDownBoldRightBold: \"┣\",\n lineUpBoldDownBoldRight: \"┠\",\n lineUpDownRightBold: \"┝\",\n lineUpBoldDownRightBold: \"┡\",\n lineUpDownBoldRightBold: \"┢\",\n lineUpDownBoldRight: \"┟\",\n lineUpBoldDownRight: \"┞\",\n lineUpDoubleDownDoubleRightDouble: \"╠\",\n lineUpDoubleDownDoubleRight: \"╟\",\n lineUpDownRightDouble: \"╞\",\n lineDownLeftRight: \"┬\",\n lineDownBoldLeftBoldRightBold: \"┳\",\n lineDownLeftBoldRightBold: \"┯\",\n lineDownBoldLeftRight: \"┰\",\n lineDownBoldLeftBoldRight: \"┱\",\n lineDownBoldLeftRightBold: \"┲\",\n lineDownLeftRightBold: \"┮\",\n lineDownLeftBoldRight: \"┭\",\n lineDownDoubleLeftDoubleRightDouble: \"╦\",\n lineDownDoubleLeftRight: \"╥\",\n lineDownLeftDoubleRightDouble: \"╤\",\n lineUpLeftRight: \"┴\",\n lineUpBoldLeftBoldRightBold: \"┻\",\n lineUpLeftBoldRightBold: \"┷\",\n lineUpBoldLeftRight: \"┸\",\n lineUpBoldLeftBoldRight: \"┹\",\n lineUpBoldLeftRightBold: \"┺\",\n lineUpLeftRightBold: \"┶\",\n lineUpLeftBoldRight: \"┵\",\n lineUpDoubleLeftDoubleRightDouble: \"╩\",\n lineUpDoubleLeftRight: \"╨\",\n lineUpLeftDoubleRightDouble: \"╧\",\n lineUpDownLeftRight: \"┼\",\n lineUpBoldDownBoldLeftBoldRightBold: \"╋\",\n lineUpDownBoldLeftBoldRightBold: \"╈\",\n lineUpBoldDownLeftBoldRightBold: \"╇\",\n lineUpBoldDownBoldLeftRightBold: \"╊\",\n lineUpBoldDownBoldLeftBoldRight: \"╉\",\n lineUpBoldDownLeftRight: \"╀\",\n lineUpDownBoldLeftRight: \"╁\",\n lineUpDownLeftBoldRight: \"┽\",\n lineUpDownLeftRightBold: \"┾\",\n lineUpBoldDownBoldLeftRight: \"╂\",\n lineUpDownLeftBoldRightBold: \"┿\",\n lineUpBoldDownLeftBoldRight: \"╃\",\n lineUpBoldDownLeftRightBold: \"╄\",\n lineUpDownBoldLeftBoldRight: \"╅\",\n lineUpDownBoldLeftRightBold: \"╆\",\n lineUpDoubleDownDoubleLeftDoubleRightDouble: \"╬\",\n lineUpDoubleDownDoubleLeftRight: \"╫\",\n lineUpDownLeftDoubleRightDouble: \"╪\",\n lineCross: \"╳\",\n lineBackslash: \"╲\",\n lineSlash: \"╱\"\n};\nvar specialMainSymbols = {\n tick: \"✔\",\n info: \"ℹ\",\n warning: \"⚠\",\n cross: \"✘\",\n squareSmall: \"◻\",\n squareSmallFilled: \"◼\",\n circle: \"◯\",\n circleFilled: \"◉\",\n circleDotted: \"◌\",\n circleDouble: \"◎\",\n circleCircle: \"ⓞ\",\n circleCross: \"ⓧ\",\n circlePipe: \"Ⓘ\",\n radioOn: \"◉\",\n radioOff: \"◯\",\n checkboxOn: \"☒\",\n checkboxOff: \"☐\",\n checkboxCircleOn: \"ⓧ\",\n checkboxCircleOff: \"Ⓘ\",\n pointer: \"❯\",\n triangleUpOutline: \"△\",\n triangleLeft: \"◀\",\n triangleRight: \"▶\",\n lozenge: \"◆\",\n lozengeOutline: \"◇\",\n hamburger: \"☰\",\n smiley: \"㋡\",\n mustache: \"෴\",\n star: \"★\",\n play: \"▶\",\n nodejs: \"⬢\",\n oneSeventh: \"⅐\",\n oneNinth: \"⅑\",\n oneTenth: \"⅒\"\n};\nvar specialFallbackSymbols = {\n tick: \"√\",\n info: \"i\",\n warning: \"‼\",\n cross: \"×\",\n squareSmall: \"□\",\n squareSmallFilled: \"■\",\n circle: \"( )\",\n circleFilled: \"(*)\",\n circleDotted: \"( )\",\n circleDouble: \"( )\",\n circleCircle: \"(○)\",\n circleCross: \"(×)\",\n circlePipe: \"(│)\",\n radioOn: \"(*)\",\n radioOff: \"( )\",\n checkboxOn: \"[×]\",\n checkboxOff: \"[ ]\",\n checkboxCircleOn: \"(×)\",\n checkboxCircleOff: \"( )\",\n pointer: \">\",\n triangleUpOutline: \"∆\",\n triangleLeft: \"◄\",\n triangleRight: \"►\",\n lozenge: \"♦\",\n lozengeOutline: \"◊\",\n hamburger: \"≡\",\n smiley: \"☺\",\n mustache: \"┌─┐\",\n star: \"✶\",\n play: \"►\",\n nodejs: \"♦\",\n oneSeventh: \"1/7\",\n oneNinth: \"1/9\",\n oneTenth: \"1/10\"\n};\nvar mainSymbols = { ...common, ...specialMainSymbols };\nvar fallbackSymbols = { ...common, ...specialFallbackSymbols };\nvar shouldUseMain = isUnicodeSupported();\nvar figures = shouldUseMain ? mainSymbols : fallbackSymbols;\nvar figures_default = figures;\nvar replacements = Object.entries(specialMainSymbols);\nvar hasColors = tty?.WriteStream?.prototype?.hasColors?.() ?? false;\nvar format = (open, close) => {\n if (!hasColors) {\n return (input) => input;\n }\n const openCode = `\\x1B[${open}m`;\n const closeCode = `\\x1B[${close}m`;\n return (input) => {\n const string = input + \"\";\n let index = string.indexOf(closeCode);\n if (index === -1) {\n return openCode + string + closeCode;\n }\n let result = openCode;\n let lastIndex = 0;\n const reopenOnNestedClose = close === 22;\n const replaceCode = (reopenOnNestedClose ? closeCode : \"\") + openCode;\n while (index !== -1) {\n result += string.slice(lastIndex, index) + replaceCode;\n lastIndex = index + closeCode.length;\n index = string.indexOf(closeCode, lastIndex);\n }\n result += string.slice(lastIndex) + closeCode;\n return result;\n };\n};\nvar reset = format(0, 0);\nvar bold = format(1, 22);\nvar dim = format(2, 22);\nvar italic = format(3, 23);\nvar underline = format(4, 24);\nvar overline = format(53, 55);\nvar inverse = format(7, 27);\nvar hidden = format(8, 28);\nvar strikethrough = format(9, 29);\nvar black = format(30, 39);\nvar red = format(31, 39);\nvar green = format(32, 39);\nvar yellow = format(33, 39);\nvar blue = format(34, 39);\nvar magenta = format(35, 39);\nvar cyan = format(36, 39);\nvar white = format(37, 39);\nvar gray = format(90, 39);\nvar bgBlack = format(40, 49);\nvar bgRed = format(41, 49);\nvar bgGreen = format(42, 49);\nvar bgYellow = format(43, 49);\nvar bgBlue = format(44, 49);\nvar bgMagenta = format(45, 49);\nvar bgCyan = format(46, 49);\nvar bgWhite = format(47, 49);\nvar bgGray = format(100, 49);\nvar redBright = format(91, 39);\nvar greenBright = format(92, 39);\nvar yellowBright = format(93, 39);\nvar blueBright = format(94, 39);\nvar magentaBright = format(95, 39);\nvar cyanBright = format(96, 39);\nvar whiteBright = format(97, 39);\nvar bgRedBright = format(101, 49);\nvar bgGreenBright = format(102, 49);\nvar bgYellowBright = format(103, 49);\nvar bgBlueBright = format(104, 49);\nvar bgMagentaBright = format(105, 49);\nvar bgCyanBright = format(106, 49);\nvar bgWhiteBright = format(107, 49);\nvar defaultVerboseFunction = ({\n type,\n message,\n timestamp,\n piped,\n commandId,\n result: { failed = false } = {},\n options: { reject = true }\n}) => {\n const timestampString = serializeTimestamp(timestamp);\n const icon = ICONS[type]({ failed, reject, piped });\n const color = COLORS[type]({ reject });\n return `${gray(`[${timestampString}]`)} ${gray(`[${commandId}]`)} ${color(icon)} ${color(message)}`;\n};\nvar serializeTimestamp = (timestamp) => `${padField(timestamp.getHours(), 2)}:${padField(timestamp.getMinutes(), 2)}:${padField(timestamp.getSeconds(), 2)}.${padField(timestamp.getMilliseconds(), 3)}`;\nvar padField = (field, padding) => String(field).padStart(padding, \"0\");\nvar getFinalIcon = ({ failed, reject }) => {\n if (!failed) {\n return figures_default.tick;\n }\n return reject ? figures_default.cross : figures_default.warning;\n};\nvar ICONS = {\n command: ({ piped }) => piped ? \"|\" : \"$\",\n output: () => \" \",\n ipc: () => \"*\",\n error: getFinalIcon,\n duration: getFinalIcon\n};\nvar identity = (string) => string;\nvar COLORS = {\n command: () => bold,\n output: () => identity,\n ipc: () => identity,\n error: ({ reject }) => reject ? redBright : yellowBright,\n duration: () => gray\n};\nvar applyVerboseOnLines = (printedLines, verboseInfo, fdNumber) => {\n const verboseFunction = getVerboseFunction(verboseInfo, fdNumber);\n return printedLines.map(({ verboseLine, verboseObject }) => applyVerboseFunction(verboseLine, verboseObject, verboseFunction)).filter((printedLine) => printedLine !== undefined).map((printedLine) => appendNewline(printedLine)).join(\"\");\n};\nvar applyVerboseFunction = (verboseLine, verboseObject, verboseFunction) => {\n if (verboseFunction === undefined) {\n return verboseLine;\n }\n const printedLine = verboseFunction(verboseLine, verboseObject);\n if (typeof printedLine === \"string\") {\n return printedLine;\n }\n};\nvar appendNewline = (printedLine) => printedLine.endsWith(`\n`) ? printedLine : `${printedLine}\n`;\nvar verboseLog = ({ type, verboseMessage, fdNumber, verboseInfo, result }) => {\n const verboseObject = getVerboseObject({ type, result, verboseInfo });\n const printedLines = getPrintedLines(verboseMessage, verboseObject);\n const finalLines = applyVerboseOnLines(printedLines, verboseInfo, fdNumber);\n if (finalLines !== \"\") {\n console.warn(finalLines.slice(0, -1));\n }\n};\nvar getVerboseObject = ({\n type,\n result,\n verboseInfo: { escapedCommand, commandId, rawOptions: { piped = false, ...options } }\n}) => ({\n type,\n escapedCommand,\n commandId: `${commandId}`,\n timestamp: new Date,\n piped,\n result,\n options\n});\nvar getPrintedLines = (verboseMessage, verboseObject) => verboseMessage.split(`\n`).map((message) => getPrintedLine({ ...verboseObject, message }));\nvar getPrintedLine = (verboseObject) => {\n const verboseLine = defaultVerboseFunction(verboseObject);\n return { verboseLine, verboseObject };\n};\nvar serializeVerboseMessage = (message) => {\n const messageString = typeof message === \"string\" ? message : inspect(message);\n const escapedMessage = escapeLines(messageString);\n return escapedMessage.replaceAll(\"\\t\", \" \".repeat(TAB_SIZE));\n};\nvar TAB_SIZE = 2;\nvar logCommand = (escapedCommand, verboseInfo) => {\n if (!isVerbose(verboseInfo)) {\n return;\n }\n verboseLog({\n type: \"command\",\n verboseMessage: escapedCommand,\n verboseInfo\n });\n};\nvar getVerboseInfo = (verbose, escapedCommand, rawOptions) => {\n validateVerbose(verbose);\n const commandId = getCommandId(verbose);\n return {\n verbose,\n escapedCommand,\n commandId,\n rawOptions\n };\n};\nvar getCommandId = (verbose) => isVerbose({ verbose }) ? COMMAND_ID++ : undefined;\nvar COMMAND_ID = 0n;\nvar validateVerbose = (verbose) => {\n for (const fdVerbose of verbose) {\n if (fdVerbose === false) {\n throw new TypeError(`The \"verbose: false\" option was renamed to \"verbose: 'none'\".`);\n }\n if (fdVerbose === true) {\n throw new TypeError(`The \"verbose: true\" option was renamed to \"verbose: 'short'\".`);\n }\n if (!VERBOSE_VALUES.includes(fdVerbose) && !isVerboseFunction(fdVerbose)) {\n const allowedValues = VERBOSE_VALUES.map((allowedValue) => `'${allowedValue}'`).join(\", \");\n throw new TypeError(`The \"verbose\" option must not be ${fdVerbose}. Allowed values are: ${allowedValues} or a function.`);\n }\n }\n};\nvar getStartTime = () => hrtime.bigint();\nvar getDurationMs = (startTime) => Number(hrtime.bigint() - startTime) / 1e6;\nvar handleCommand = (filePath, rawArguments, rawOptions) => {\n const startTime = getStartTime();\n const { command, escapedCommand } = joinCommand(filePath, rawArguments);\n const verbose = normalizeFdSpecificOption(rawOptions, \"verbose\");\n const verboseInfo = getVerboseInfo(verbose, escapedCommand, { ...rawOptions });\n logCommand(escapedCommand, verboseInfo);\n return {\n command,\n escapedCommand,\n startTime,\n verboseInfo\n };\n};\nvar import_cross_spawn = __toESM(require_cross_spawn(), 1);\nfunction pathKey(options = {}) {\n const {\n env = process.env,\n platform: platform2 = process.platform\n } = options;\n if (platform2 !== \"win32\") {\n return \"PATH\";\n }\n return Object.keys(env).reverse().find((key) => key.toUpperCase() === \"PATH\") || \"Path\";\n}\nvar execFileOriginal = promisify(execFileCallback);\nfunction toPath(urlOrPath) {\n return urlOrPath instanceof URL ? fileURLToPath2(urlOrPath) : urlOrPath;\n}\nfunction traversePathUp(startPath) {\n return {\n *[Symbol.iterator]() {\n let currentPath = path.resolve(toPath(startPath));\n let previousPath;\n while (previousPath !== currentPath) {\n yield currentPath;\n previousPath = currentPath;\n currentPath = path.resolve(currentPath, \"..\");\n }\n }\n };\n}\nvar TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;\nvar npmRunPath = ({\n cwd = process4.cwd(),\n path: pathOption = process4.env[pathKey()],\n preferLocal = true,\n execPath: execPath2 = process4.execPath,\n addExecPath = true\n} = {}) => {\n const cwdPath = path2.resolve(toPath(cwd));\n const result = [];\n const pathParts = pathOption.split(path2.delimiter);\n if (preferLocal) {\n applyPreferLocal(result, pathParts, cwdPath);\n }\n if (addExecPath) {\n applyExecPath(result, pathParts, execPath2, cwdPath);\n }\n return pathOption === \"\" || pathOption === path2.delimiter ? `${result.join(path2.delimiter)}${pathOption}` : [...result, pathOption].join(path2.delimiter);\n};\nvar applyPreferLocal = (result, pathParts, cwdPath) => {\n for (const directory of traversePathUp(cwdPath)) {\n const pathPart = path2.join(directory, \"node_modules/.bin\");\n if (!pathParts.includes(pathPart)) {\n result.push(pathPart);\n }\n }\n};\nvar applyExecPath = (result, pathParts, execPath2, cwdPath) => {\n const pathPart = path2.resolve(cwdPath, toPath(execPath2), \"..\");\n if (!pathParts.includes(pathPart)) {\n result.push(pathPart);\n }\n};\nvar npmRunPathEnv = ({ env = process4.env, ...options } = {}) => {\n env = { ...env };\n const pathName = pathKey({ env });\n options.path = env[pathName];\n env[pathName] = npmRunPath(options);\n return env;\n};\nvar getFinalError = (originalError, message, isSync) => {\n const ErrorClass = isSync ? ExecaSyncError : ExecaError;\n const options = originalError instanceof DiscardedError ? {} : { cause: originalError };\n return new ErrorClass(message, options);\n};\n\nclass DiscardedError extends Error {\n}\nvar setErrorName = (ErrorClass, value) => {\n Object.defineProperty(ErrorClass.prototype, \"name\", {\n value,\n writable: true,\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ErrorClass.prototype, execaErrorSymbol, {\n value: true,\n writable: false,\n enumerable: false,\n configurable: false\n });\n};\nvar isExecaError = (error) => isErrorInstance(error) && (execaErrorSymbol in error);\nvar execaErrorSymbol = Symbol(\"isExecaError\");\nvar isErrorInstance = (value) => Object.prototype.toString.call(value) === \"[object Error]\";\n\nclass ExecaError extends Error {\n}\nsetErrorName(ExecaError, ExecaError.name);\n\nclass ExecaSyncError extends Error {\n}\nsetErrorName(ExecaSyncError, ExecaSyncError.name);\nvar getRealtimeSignals = () => {\n const length = SIGRTMAX - SIGRTMIN + 1;\n return Array.from({ length }, getRealtimeSignal);\n};\nvar getRealtimeSignal = (value, index) => ({\n name: `SIGRT${index + 1}`,\n number: SIGRTMIN + index,\n action: \"terminate\",\n description: \"Application-specific signal (realtime)\",\n standard: \"posix\"\n});\nvar SIGRTMIN = 34;\nvar SIGRTMAX = 64;\nvar SIGNALS = [\n {\n name: \"SIGHUP\",\n number: 1,\n action: \"terminate\",\n description: \"Terminal closed\",\n standard: \"posix\"\n },\n {\n name: \"SIGINT\",\n number: 2,\n action: \"terminate\",\n description: \"User interruption with CTRL-C\",\n standard: \"ansi\"\n },\n {\n name: \"SIGQUIT\",\n number: 3,\n action: \"core\",\n description: \"User interruption with CTRL-\\\\\",\n standard: \"posix\"\n },\n {\n name: \"SIGILL\",\n number: 4,\n action: \"core\",\n description: \"Invalid machine instruction\",\n standard: \"ansi\"\n },\n {\n name: \"SIGTRAP\",\n number: 5,\n action: \"core\",\n description: \"Debugger breakpoint\",\n standard: \"posix\"\n },\n {\n name: \"SIGABRT\",\n number: 6,\n action: \"core\",\n description: \"Aborted\",\n standard: \"ansi\"\n },\n {\n name: \"SIGIOT\",\n number: 6,\n action: \"core\",\n description: \"Aborted\",\n standard: \"bsd\"\n },\n {\n name: \"SIGBUS\",\n number: 7,\n action: \"core\",\n description: \"Bus error due to misaligned, non-existing address or paging error\",\n standard: \"bsd\"\n },\n {\n name: \"SIGEMT\",\n number: 7,\n action: \"terminate\",\n description: \"Command should be emulated but is not implemented\",\n standard: \"other\"\n },\n {\n name: \"SIGFPE\",\n number: 8,\n action: \"core\",\n description: \"Floating point arithmetic error\",\n standard: \"ansi\"\n },\n {\n name: \"SIGKILL\",\n number: 9,\n action: \"terminate\",\n description: \"Forced termination\",\n standard: \"posix\",\n forced: true\n },\n {\n name: \"SIGUSR1\",\n number: 10,\n action: \"terminate\",\n description: \"Application-specific signal\",\n standard: \"posix\"\n },\n {\n name: \"SIGSEGV\",\n number: 11,\n action: \"core\",\n description: \"Segmentation fault\",\n standard: \"ansi\"\n },\n {\n name: \"SIGUSR2\",\n number: 12,\n action: \"terminate\",\n description: \"Application-specific signal\",\n standard: \"posix\"\n },\n {\n name: \"SIGPIPE\",\n number: 13,\n action: \"terminate\",\n description: \"Broken pipe or socket\",\n standard: \"posix\"\n },\n {\n name: \"SIGALRM\",\n number: 14,\n action: \"terminate\",\n description: \"Timeout or timer\",\n standard: \"posix\"\n },\n {\n name: \"SIGTERM\",\n number: 15,\n action: \"terminate\",\n description: \"Termination\",\n standard: \"ansi\"\n },\n {\n name: \"SIGSTKFLT\",\n number: 16,\n action: \"terminate\",\n description: \"Stack is empty or overflowed\",\n standard: \"other\"\n },\n {\n name: \"SIGCHLD\",\n number: 17,\n action: \"ignore\",\n description: \"Child process terminated, paused or unpaused\",\n standard: \"posix\"\n },\n {\n name: \"SIGCLD\",\n number: 17,\n action: \"ignore\",\n description: \"Child process terminated, paused or unpaused\",\n standard: \"other\"\n },\n {\n name: \"SIGCONT\",\n number: 18,\n action: \"unpause\",\n description: \"Unpaused\",\n standard: \"posix\",\n forced: true\n },\n {\n name: \"SIGSTOP\",\n number: 19,\n action: \"pause\",\n description: \"Paused\",\n standard: \"posix\",\n forced: true\n },\n {\n name: \"SIGTSTP\",\n number: 20,\n action: \"pause\",\n description: 'Paused using CTRL-Z or \"suspend\"',\n standard: \"posix\"\n },\n {\n name: \"SIGTTIN\",\n number: 21,\n action: \"pause\",\n description: \"Background process cannot read terminal input\",\n standard: \"posix\"\n },\n {\n name: \"SIGBREAK\",\n number: 21,\n action: \"terminate\",\n description: \"User interruption with CTRL-BREAK\",\n standard: \"other\"\n },\n {\n name: \"SIGTTOU\",\n number: 22,\n action: \"pause\",\n description: \"Background process cannot write to terminal output\",\n standard: \"posix\"\n },\n {\n name: \"SIGURG\",\n number: 23,\n action: \"ignore\",\n description: \"Socket received out-of-band data\",\n standard: \"bsd\"\n },\n {\n name: \"SIGXCPU\",\n number: 24,\n action: \"core\",\n description: \"Process timed out\",\n standard: \"bsd\"\n },\n {\n name: \"SIGXFSZ\",\n number: 25,\n action: \"core\",\n description: \"File too big\",\n standard: \"bsd\"\n },\n {\n name: \"SIGVTALRM\",\n number: 26,\n action: \"terminate\",\n description: \"Timeout or timer\",\n standard: \"bsd\"\n },\n {\n name: \"SIGPROF\",\n number: 27,\n action: \"terminate\",\n description: \"Timeout or timer\",\n standard: \"bsd\"\n },\n {\n name: \"SIGWINCH\",\n number: 28,\n action: \"ignore\",\n description: \"Terminal window size changed\",\n standard: \"bsd\"\n },\n {\n name: \"SIGIO\",\n number: 29,\n action: \"terminate\",\n description: \"I/O is available\",\n standard: \"other\"\n },\n {\n name: \"SIGPOLL\",\n number: 29,\n action: \"terminate\",\n description: \"Watched event\",\n standard: \"other\"\n },\n {\n name: \"SIGINFO\",\n number: 29,\n action: \"ignore\",\n description: \"Request for process information\",\n standard: \"other\"\n },\n {\n name: \"SIGPWR\",\n number: 30,\n action: \"terminate\",\n description: \"Device running out of power\",\n standard: \"systemv\"\n },\n {\n name: \"SIGSYS\",\n number: 31,\n action: \"core\",\n description: \"Invalid system call\",\n standard: \"other\"\n },\n {\n name: \"SIGUNUSED\",\n number: 31,\n action: \"terminate\",\n description: \"Invalid system call\",\n standard: \"other\"\n }\n];\nvar getSignals = () => {\n const realtimeSignals = getRealtimeSignals();\n const signals = [...SIGNALS, ...realtimeSignals].map(normalizeSignal);\n return signals;\n};\nvar normalizeSignal = ({\n name,\n number: defaultNumber,\n description,\n action,\n forced = false,\n standard\n}) => {\n const {\n signals: { [name]: constantSignal }\n } = constants;\n const supported = constantSignal !== undefined;\n const number = supported ? constantSignal : defaultNumber;\n return { name, number, description, supported, action, forced, standard };\n};\nvar getSignalsByName = () => {\n const signals = getSignals();\n return Object.fromEntries(signals.map(getSignalByName));\n};\nvar getSignalByName = ({\n name,\n number,\n description,\n supported,\n action,\n forced,\n standard\n}) => [name, { name, number, description, supported, action, forced, standard }];\nvar signalsByName = getSignalsByName();\nvar getSignalsByNumber = () => {\n const signals = getSignals();\n const length = SIGRTMAX + 1;\n const signalsA = Array.from({ length }, (value, number) => getSignalByNumber(number, signals));\n return Object.assign({}, ...signalsA);\n};\nvar getSignalByNumber = (number, signals) => {\n const signal = findSignalByNumber(number, signals);\n if (signal === undefined) {\n return {};\n }\n const { name, description, supported, action, forced, standard } = signal;\n return {\n [number]: {\n name,\n number,\n description,\n supported,\n action,\n forced,\n standard\n }\n };\n};\nvar findSignalByNumber = (number, signals) => {\n const signal = signals.find(({ name }) => constants2.signals[name] === number);\n if (signal !== undefined) {\n return signal;\n }\n return signals.find((signalA) => signalA.number === number);\n};\nvar signalsByNumber = getSignalsByNumber();\nvar normalizeKillSignal = (killSignal) => {\n const optionName = \"option `killSignal`\";\n if (killSignal === 0) {\n throw new TypeError(`Invalid ${optionName}: 0 cannot be used.`);\n }\n return normalizeSignal2(killSignal, optionName);\n};\nvar normalizeSignalArgument = (signal) => signal === 0 ? signal : normalizeSignal2(signal, \"`subprocess.kill()`'s argument\");\nvar normalizeSignal2 = (signalNameOrInteger, optionName) => {\n if (Number.isInteger(signalNameOrInteger)) {\n return normalizeSignalInteger(signalNameOrInteger, optionName);\n }\n if (typeof signalNameOrInteger === \"string\") {\n return normalizeSignalName(signalNameOrInteger, optionName);\n }\n throw new TypeError(`Invalid ${optionName} ${String(signalNameOrInteger)}: it must be a string or an integer.\n${getAvailableSignals()}`);\n};\nvar normalizeSignalInteger = (signalInteger, optionName) => {\n if (signalsIntegerToName.has(signalInteger)) {\n return signalsIntegerToName.get(signalInteger);\n }\n throw new TypeError(`Invalid ${optionName} ${signalInteger}: this signal integer does not exist.\n${getAvailableSignals()}`);\n};\nvar getSignalsIntegerToName = () => new Map(Object.entries(constants3.signals).reverse().map(([signalName, signalInteger]) => [signalInteger, signalName]));\nvar signalsIntegerToName = getSignalsIntegerToName();\nvar normalizeSignalName = (signalName, optionName) => {\n if (signalName in constants3.signals) {\n return signalName;\n }\n if (signalName.toUpperCase() in constants3.signals) {\n throw new TypeError(`Invalid ${optionName} '${signalName}': please rename it to '${signalName.toUpperCase()}'.`);\n }\n throw new TypeError(`Invalid ${optionName} '${signalName}': this signal name does not exist.\n${getAvailableSignals()}`);\n};\nvar getAvailableSignals = () => `Available signal names: ${getAvailableSignalNames()}.\nAvailable signal numbers: ${getAvailableSignalIntegers()}.`;\nvar getAvailableSignalNames = () => Object.keys(constants3.signals).sort().map((signalName) => `'${signalName}'`).join(\", \");\nvar getAvailableSignalIntegers = () => [...new Set(Object.values(constants3.signals).sort((signalInteger, signalIntegerTwo) => signalInteger - signalIntegerTwo))].join(\", \");\nvar getSignalDescription = (signal) => signalsByName[signal].description;\nvar normalizeForceKillAfterDelay = (forceKillAfterDelay) => {\n if (forceKillAfterDelay === false) {\n return forceKillAfterDelay;\n }\n if (forceKillAfterDelay === true) {\n return DEFAULT_FORCE_KILL_TIMEOUT;\n }\n if (!Number.isFinite(forceKillAfterDelay) || forceKillAfterDelay < 0) {\n throw new TypeError(`Expected the \\`forceKillAfterDelay\\` option to be a non-negative integer, got \\`${forceKillAfterDelay}\\` (${typeof forceKillAfterDelay})`);\n }\n return forceKillAfterDelay;\n};\nvar DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5;\nvar subprocessKill = ({ kill, options: { forceKillAfterDelay, killSignal }, onInternalError, context, controller }, signalOrError, errorArgument) => {\n const { signal, error } = parseKillArguments(signalOrError, errorArgument, killSignal);\n emitKillError(error, onInternalError);\n const killResult = kill(signal);\n setKillTimeout({\n kill,\n signal,\n forceKillAfterDelay,\n killSignal,\n killResult,\n context,\n controller\n });\n return killResult;\n};\nvar parseKillArguments = (signalOrError, errorArgument, killSignal) => {\n const [signal = killSignal, error] = isErrorInstance(signalOrError) ? [undefined, signalOrError] : [signalOrError, errorArgument];\n if (typeof signal !== \"string\" && !Number.isInteger(signal)) {\n throw new TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(signal)}`);\n }\n if (error !== undefined && !isErrorInstance(error)) {\n throw new TypeError(`The second argument is optional. If specified, it must be an error instance: ${error}`);\n }\n return { signal: normalizeSignalArgument(signal), error };\n};\nvar emitKillError = (error, onInternalError) => {\n if (error !== undefined) {\n onInternalError.reject(error);\n }\n};\nvar setKillTimeout = async ({ kill, signal, forceKillAfterDelay, killSignal, killResult, context, controller }) => {\n if (signal === killSignal && killResult) {\n killOnTimeout({\n kill,\n forceKillAfterDelay,\n context,\n controllerSignal: controller.signal\n });\n }\n};\nvar killOnTimeout = async ({ kill, forceKillAfterDelay, context, controllerSignal }) => {\n if (forceKillAfterDelay === false) {\n return;\n }\n try {\n await setTimeout2(forceKillAfterDelay, undefined, { signal: controllerSignal });\n if (kill(\"SIGKILL\")) {\n context.isForcefullyTerminated ??= true;\n }\n } catch {}\n};\nvar onAbortedSignal = async (mainSignal, stopSignal) => {\n if (!mainSignal.aborted) {\n await once(mainSignal, \"abort\", { signal: stopSignal });\n }\n};\nvar validateCancelSignal = ({ cancelSignal }) => {\n if (cancelSignal !== undefined && Object.prototype.toString.call(cancelSignal) !== \"[object AbortSignal]\") {\n throw new Error(`The \\`cancelSignal\\` option must be an AbortSignal: ${String(cancelSignal)}`);\n }\n};\nvar throwOnCancel = ({ subprocess, cancelSignal, gracefulCancel, context, controller }) => cancelSignal === undefined || gracefulCancel ? [] : [terminateOnCancel(subprocess, cancelSignal, context, controller)];\nvar terminateOnCancel = async (subprocess, cancelSignal, context, { signal }) => {\n await onAbortedSignal(cancelSignal, signal);\n context.terminationReason ??= \"cancel\";\n subprocess.kill();\n throw cancelSignal.reason;\n};\nvar validateIpcMethod = ({ methodName, isSubprocess, ipc, isConnected }) => {\n validateIpcOption(methodName, isSubprocess, ipc);\n validateConnection(methodName, isSubprocess, isConnected);\n};\nvar validateIpcOption = (methodName, isSubprocess, ipc) => {\n if (!ipc) {\n throw new Error(`${getMethodName(methodName, isSubprocess)} can only be used if the \\`ipc\\` option is \\`true\\`.`);\n }\n};\nvar validateConnection = (methodName, isSubprocess, isConnected) => {\n if (!isConnected) {\n throw new Error(`${getMethodName(methodName, isSubprocess)} cannot be used: the ${getOtherProcessName(isSubprocess)} has already exited or disconnected.`);\n }\n};\nvar throwOnEarlyDisconnect = (isSubprocess) => {\n throw new Error(`${getMethodName(\"getOneMessage\", isSubprocess)} could not complete: the ${getOtherProcessName(isSubprocess)} exited or disconnected.`);\n};\nvar throwOnStrictDeadlockError = (isSubprocess) => {\n throw new Error(`${getMethodName(\"sendMessage\", isSubprocess)} failed: the ${getOtherProcessName(isSubprocess)} is sending a message too, instead of listening to incoming messages.\nThis can be fixed by both sending a message and listening to incoming messages at the same time:\n\nconst [receivedMessage] = await Promise.all([\n\t${getMethodName(\"getOneMessage\", isSubprocess)},\n\t${getMethodName(\"sendMessage\", isSubprocess, \"message, {strict: true}\")},\n]);`);\n};\nvar getStrictResponseError = (error, isSubprocess) => new Error(`${getMethodName(\"sendMessage\", isSubprocess)} failed when sending an acknowledgment response to the ${getOtherProcessName(isSubprocess)}.`, { cause: error });\nvar throwOnMissingStrict = (isSubprocess) => {\n throw new Error(`${getMethodName(\"sendMessage\", isSubprocess)} failed: the ${getOtherProcessName(isSubprocess)} is not listening to incoming messages.`);\n};\nvar throwOnStrictDisconnect = (isSubprocess) => {\n throw new Error(`${getMethodName(\"sendMessage\", isSubprocess)} failed: the ${getOtherProcessName(isSubprocess)} exited without listening to incoming messages.`);\n};\nvar getAbortDisconnectError = () => new Error(`\\`cancelSignal\\` aborted: the ${getOtherProcessName(true)} disconnected.`);\nvar throwOnMissingParent = () => {\n throw new Error(\"`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.\");\n};\nvar handleEpipeError = ({ error, methodName, isSubprocess }) => {\n if (error.code === \"EPIPE\") {\n throw new Error(`${getMethodName(methodName, isSubprocess)} cannot be used: the ${getOtherProcessName(isSubprocess)} is disconnecting.`, { cause: error });\n }\n};\nvar handleSerializationError = ({ error, methodName, isSubprocess, message }) => {\n if (isSerializationError(error)) {\n throw new Error(`${getMethodName(methodName, isSubprocess)}'s argument type is invalid: the message cannot be serialized: ${String(message)}.`, { cause: error });\n }\n};\nvar isSerializationError = ({ code, message }) => SERIALIZATION_ERROR_CODES.has(code) || SERIALIZATION_ERROR_MESSAGES.some((serializationErrorMessage) => message.includes(serializationErrorMessage));\nvar SERIALIZATION_ERROR_CODES = new Set([\n \"ERR_MISSING_ARGS\",\n \"ERR_INVALID_ARG_TYPE\"\n]);\nvar SERIALIZATION_ERROR_MESSAGES = [\n \"could not be cloned\",\n \"circular structure\",\n \"call stack size exceeded\"\n];\nvar getMethodName = (methodName, isSubprocess, parameters = \"\") => methodName === \"cancelSignal\" ? \"`cancelSignal`'s `controller.abort()`\" : `${getNamespaceName(isSubprocess)}${methodName}(${parameters})`;\nvar getNamespaceName = (isSubprocess) => isSubprocess ? \"\" : \"subprocess.\";\nvar getOtherProcessName = (isSubprocess) => isSubprocess ? \"parent process\" : \"subprocess\";\nvar disconnect = (anyProcess) => {\n if (anyProcess.connected) {\n anyProcess.disconnect();\n }\n};\nvar createDeferred = () => {\n const methods = {};\n const promise = new Promise((resolve4, reject) => {\n Object.assign(methods, { resolve: resolve4, reject });\n });\n return Object.assign(promise, methods);\n};\nvar getToStream = (destination, to = \"stdin\") => {\n const isWritable = true;\n const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(destination);\n const fdNumber = getFdNumber(fileDescriptors, to, isWritable);\n const destinationStream = destination.stdio[fdNumber];\n if (destinationStream === null) {\n throw new TypeError(getInvalidStdioOptionMessage(fdNumber, to, options, isWritable));\n }\n return destinationStream;\n};\nvar getFromStream = (source, from = \"stdout\") => {\n const isWritable = false;\n const { options, fileDescriptors } = SUBPROCESS_OPTIONS.get(source);\n const fdNumber = getFdNumber(fileDescriptors, from, isWritable);\n const sourceStream = fdNumber === \"all\" ? source.all : source.stdio[fdNumber];\n if (sourceStream === null || sourceStream === undefined) {\n throw new TypeError(getInvalidStdioOptionMessage(fdNumber, from, options, isWritable));\n }\n return sourceStream;\n};\nvar SUBPROCESS_OPTIONS = new WeakMap;\nvar getFdNumber = (fileDescriptors, fdName, isWritable) => {\n const fdNumber = parseFdNumber(fdName, isWritable);\n validateFdNumber(fdNumber, fdName, isWritable, fileDescriptors);\n return fdNumber;\n};\nvar parseFdNumber = (fdName, isWritable) => {\n const fdNumber = parseFd(fdName);\n if (fdNumber !== undefined) {\n return fdNumber;\n }\n const { validOptions, defaultValue } = isWritable ? { validOptions: '\"stdin\"', defaultValue: \"stdin\" } : { validOptions: '\"stdout\", \"stderr\", \"all\"', defaultValue: \"stdout\" };\n throw new TypeError(`\"${getOptionName(isWritable)}\" must not be \"${fdName}\".\nIt must be ${validOptions} or \"fd3\", \"fd4\" (and so on).\nIt is optional and defaults to \"${defaultValue}\".`);\n};\nvar validateFdNumber = (fdNumber, fdName, isWritable, fileDescriptors) => {\n const fileDescriptor = fileDescriptors[getUsedDescriptor(fdNumber)];\n if (fileDescriptor === undefined) {\n throw new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. That file descriptor does not exist.\nPlease set the \"stdio\" option to ensure that file descriptor exists.`);\n }\n if (fileDescriptor.direction === \"input\" && !isWritable) {\n throw new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. It must be a readable stream, not writable.`);\n }\n if (fileDescriptor.direction !== \"input\" && isWritable) {\n throw new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. It must be a writable stream, not readable.`);\n }\n};\nvar getInvalidStdioOptionMessage = (fdNumber, fdName, options, isWritable) => {\n if (fdNumber === \"all\" && !options.all) {\n return `The \"all\" option must be true to use \"from: 'all'\".`;\n }\n const { optionName, optionValue } = getInvalidStdioOption(fdNumber, options);\n return `The \"${optionName}: ${serializeOptionValue(optionValue)}\" option is incompatible with using \"${getOptionName(isWritable)}: ${serializeOptionValue(fdName)}\".\nPlease set this option with \"pipe\" instead.`;\n};\nvar getInvalidStdioOption = (fdNumber, { stdin, stdout, stderr, stdio }) => {\n const usedDescriptor = getUsedDescriptor(fdNumber);\n if (usedDescriptor === 0 && stdin !== undefined) {\n return { optionName: \"stdin\", optionValue: stdin };\n }\n if (usedDescriptor === 1 && stdout !== undefined) {\n return { optionName: \"stdout\", optionValue: stdout };\n }\n if (usedDescriptor === 2 && stderr !== undefined) {\n return { optionName: \"stderr\", optionValue: stderr };\n }\n return { optionName: `stdio[${usedDescriptor}]`, optionValue: stdio[usedDescriptor] };\n};\nvar getUsedDescriptor = (fdNumber) => fdNumber === \"all\" ? 1 : fdNumber;\nvar getOptionName = (isWritable) => isWritable ? \"to\" : \"from\";\nvar serializeOptionValue = (value) => {\n if (typeof value === \"string\") {\n return `'${value}'`;\n }\n return typeof value === \"number\" ? `${value}` : \"Stream\";\n};\nvar incrementMaxListeners = (eventEmitter, maxListenersIncrement, signal) => {\n const maxListeners = eventEmitter.getMaxListeners();\n if (maxListeners === 0 || maxListeners === Number.POSITIVE_INFINITY) {\n return;\n }\n eventEmitter.setMaxListeners(maxListeners + maxListenersIncrement);\n addAbortListener(signal, () => {\n eventEmitter.setMaxListeners(eventEmitter.getMaxListeners() - maxListenersIncrement);\n });\n};\nvar addReference = (channel, reference) => {\n if (reference) {\n addReferenceCount(channel);\n }\n};\nvar addReferenceCount = (channel) => {\n channel.refCounted();\n};\nvar removeReference = (channel, reference) => {\n if (reference) {\n removeReferenceCount(channel);\n }\n};\nvar removeReferenceCount = (channel) => {\n channel.unrefCounted();\n};\nvar undoAddedReferences = (channel, isSubprocess) => {\n if (isSubprocess) {\n removeReferenceCount(channel);\n removeReferenceCount(channel);\n }\n};\nvar redoAddedReferences = (channel, isSubprocess) => {\n if (isSubprocess) {\n addReferenceCount(channel);\n addReferenceCount(channel);\n }\n};\nvar onMessage = async ({ anyProcess, channel, isSubprocess, ipcEmitter }, wrappedMessage) => {\n if (handleStrictResponse(wrappedMessage) || handleAbort(wrappedMessage)) {\n return;\n }\n if (!INCOMING_MESSAGES.has(anyProcess)) {\n INCOMING_MESSAGES.set(anyProcess, []);\n }\n const incomingMessages = INCOMING_MESSAGES.get(anyProcess);\n incomingMessages.push(wrappedMessage);\n if (incomingMessages.length > 1) {\n return;\n }\n while (incomingMessages.length > 0) {\n await waitForOutgoingMessages(anyProcess, ipcEmitter, wrappedMessage);\n await scheduler.yield();\n const message = await handleStrictRequest({\n wrappedMessage: incomingMessages[0],\n anyProcess,\n channel,\n isSubprocess,\n ipcEmitter\n });\n incomingMessages.shift();\n ipcEmitter.emit(\"message\", message);\n ipcEmitter.emit(\"message:done\");\n }\n};\nvar onDisconnect = async ({ anyProcess, channel, isSubprocess, ipcEmitter, boundOnMessage }) => {\n abortOnDisconnect();\n const incomingMessages = INCOMING_MESSAGES.get(anyProcess);\n while (incomingMessages?.length > 0) {\n await once2(ipcEmitter, \"message:done\");\n }\n anyProcess.removeListener(\"message\", boundOnMessage);\n redoAddedReferences(channel, isSubprocess);\n ipcEmitter.connected = false;\n ipcEmitter.emit(\"disconnect\");\n};\nvar INCOMING_MESSAGES = new WeakMap;\nvar getIpcEmitter = (anyProcess, channel, isSubprocess) => {\n if (IPC_EMITTERS.has(anyProcess)) {\n return IPC_EMITTERS.get(anyProcess);\n }\n const ipcEmitter = new EventEmitter;\n ipcEmitter.connected = true;\n IPC_EMITTERS.set(anyProcess, ipcEmitter);\n forwardEvents({\n ipcEmitter,\n anyProcess,\n channel,\n isSubprocess\n });\n return ipcEmitter;\n};\nvar IPC_EMITTERS = new WeakMap;\nvar forwardEvents = ({ ipcEmitter, anyProcess, channel, isSubprocess }) => {\n const boundOnMessage = onMessage.bind(undefined, {\n anyProcess,\n channel,\n isSubprocess,\n ipcEmitter\n });\n anyProcess.on(\"message\", boundOnMessage);\n anyProcess.once(\"disconnect\", onDisconnect.bind(undefined, {\n anyProcess,\n channel,\n isSubprocess,\n ipcEmitter,\n boundOnMessage\n }));\n undoAddedReferences(channel, isSubprocess);\n};\nvar isConnected = (anyProcess) => {\n const ipcEmitter = IPC_EMITTERS.get(anyProcess);\n return ipcEmitter === undefined ? anyProcess.channel !== null : ipcEmitter.connected;\n};\nvar handleSendStrict = ({ anyProcess, channel, isSubprocess, message, strict }) => {\n if (!strict) {\n return message;\n }\n const ipcEmitter = getIpcEmitter(anyProcess, channel, isSubprocess);\n const hasListeners = hasMessageListeners(anyProcess, ipcEmitter);\n return {\n id: count++,\n type: REQUEST_TYPE,\n message,\n hasListeners\n };\n};\nvar count = 0n;\nvar validateStrictDeadlock = (outgoingMessages, wrappedMessage) => {\n if (wrappedMessage?.type !== REQUEST_TYPE || wrappedMessage.hasListeners) {\n return;\n }\n for (const { id } of outgoingMessages) {\n if (id !== undefined) {\n STRICT_RESPONSES[id].resolve({ isDeadlock: true, hasListeners: false });\n }\n }\n};\nvar handleStrictRequest = async ({ wrappedMessage, anyProcess, channel, isSubprocess, ipcEmitter }) => {\n if (wrappedMessage?.type !== REQUEST_TYPE || !anyProcess.connected) {\n return wrappedMessage;\n }\n const { id, message } = wrappedMessage;\n const response = { id, type: RESPONSE_TYPE, message: hasMessageListeners(anyProcess, ipcEmitter) };\n try {\n await sendMessage({\n anyProcess,\n channel,\n isSubprocess,\n ipc: true\n }, response);\n } catch (error) {\n ipcEmitter.emit(\"strict:error\", error);\n }\n return message;\n};\nvar handleStrictResponse = (wrappedMessage) => {\n if (wrappedMessage?.type !== RESPONSE_TYPE) {\n return false;\n }\n const { id, message: hasListeners } = wrappedMessage;\n STRICT_RESPONSES[id]?.resolve({ isDeadlock: false, hasListeners });\n return true;\n};\nvar waitForStrictResponse = async (wrappedMessage, anyProcess, isSubprocess) => {\n if (wrappedMessage?.type !== REQUEST_TYPE) {\n return;\n }\n const deferred = createDeferred();\n STRICT_RESPONSES[wrappedMessage.id] = deferred;\n const controller = new AbortController;\n try {\n const { isDeadlock, hasListeners } = await Promise.race([\n deferred,\n throwOnDisconnect(anyProcess, isSubprocess, controller)\n ]);\n if (isDeadlock) {\n throwOnStrictDeadlockError(isSubprocess);\n }\n if (!hasListeners) {\n throwOnMissingStrict(isSubprocess);\n }\n } finally {\n controller.abort();\n delete STRICT_RESPONSES[wrappedMessage.id];\n }\n};\nvar STRICT_RESPONSES = {};\nvar throwOnDisconnect = async (anyProcess, isSubprocess, { signal }) => {\n incrementMaxListeners(anyProcess, 1, signal);\n await once3(anyProcess, \"disconnect\", { signal });\n throwOnStrictDisconnect(isSubprocess);\n};\nvar REQUEST_TYPE = \"execa:ipc:request\";\nvar RESPONSE_TYPE = \"execa:ipc:response\";\nvar startSendMessage = (anyProcess, wrappedMessage, strict) => {\n if (!OUTGOING_MESSAGES.has(anyProcess)) {\n OUTGOING_MESSAGES.set(anyProcess, new Set);\n }\n const outgoingMessages = OUTGOING_MESSAGES.get(anyProcess);\n const onMessageSent = createDeferred();\n const id = strict ? wrappedMessage.id : undefined;\n const outgoingMessage = { onMessageSent, id };\n outgoingMessages.add(outgoingMessage);\n return { outgoingMessages, outgoingMessage };\n};\nvar endSendMessage = ({ outgoingMessages, outgoingMessage }) => {\n outgoingMessages.delete(outgoingMessage);\n outgoingMessage.onMessageSent.resolve();\n};\nvar waitForOutgoingMessages = async (anyProcess, ipcEmitter, wrappedMessage) => {\n while (!hasMessageListeners(anyProcess, ipcEmitter) && OUTGOING_MESSAGES.get(anyProcess)?.size > 0) {\n const outgoingMessages = [...OUTGOING_MESSAGES.get(anyProcess)];\n validateStrictDeadlock(outgoingMessages, wrappedMessage);\n await Promise.all(outgoingMessages.map(({ onMessageSent }) => onMessageSent));\n }\n};\nvar OUTGOING_MESSAGES = new WeakMap;\nvar hasMessageListeners = (anyProcess, ipcEmitter) => ipcEmitter.listenerCount(\"message\") > getMinListenerCount(anyProcess);\nvar getMinListenerCount = (anyProcess) => SUBPROCESS_OPTIONS.has(anyProcess) && !getFdSpecificValue(SUBPROCESS_OPTIONS.get(anyProcess).options.buffer, \"ipc\") ? 1 : 0;\nvar sendMessage = ({ anyProcess, channel, isSubprocess, ipc }, message, { strict = false } = {}) => {\n const methodName = \"sendMessage\";\n validateIpcMethod({\n methodName,\n isSubprocess,\n ipc,\n isConnected: anyProcess.connected\n });\n return sendMessageAsync({\n anyProcess,\n channel,\n methodName,\n isSubprocess,\n message,\n strict\n });\n};\nvar sendMessageAsync = async ({ anyProcess, channel, methodName, isSubprocess, message, strict }) => {\n const wrappedMessage = handleSendStrict({\n anyProcess,\n channel,\n isSubprocess,\n message,\n strict\n });\n const outgoingMessagesState = startSendMessage(anyProcess, wrappedMessage, strict);\n try {\n await sendOneMessage({\n anyProcess,\n methodName,\n isSubprocess,\n wrappedMessage,\n message\n });\n } catch (error) {\n disconnect(anyProcess);\n throw error;\n } finally {\n endSendMessage(outgoingMessagesState);\n }\n};\nvar sendOneMessage = async ({ anyProcess, methodName, isSubprocess, wrappedMessage, message }) => {\n const sendMethod = getSendMethod(anyProcess);\n try {\n await Promise.all([\n waitForStrictResponse(wrappedMessage, anyProcess, isSubprocess),\n sendMethod(wrappedMessage)\n ]);\n } catch (error) {\n handleEpipeError({ error, methodName, isSubprocess });\n handleSerializationError({\n error,\n methodName,\n isSubprocess,\n message\n });\n throw error;\n }\n};\nvar getSendMethod = (anyProcess) => {\n if (PROCESS_SEND_METHODS.has(anyProcess)) {\n return PROCESS_SEND_METHODS.get(anyProcess);\n }\n const sendMethod = promisify2(anyProcess.send.bind(anyProcess));\n PROCESS_SEND_METHODS.set(anyProcess, sendMethod);\n return sendMethod;\n};\nvar PROCESS_SEND_METHODS = new WeakMap;\nvar sendAbort = (subprocess, message) => {\n const methodName = \"cancelSignal\";\n validateConnection(methodName, false, subprocess.connected);\n return sendOneMessage({\n anyProcess: subprocess,\n methodName,\n isSubprocess: false,\n wrappedMessage: { type: GRACEFUL_CANCEL_TYPE, message },\n message\n });\n};\nvar getCancelSignal = async ({ anyProcess, channel, isSubprocess, ipc }) => {\n await startIpc({\n anyProcess,\n channel,\n isSubprocess,\n ipc\n });\n return cancelController.signal;\n};\nvar startIpc = async ({ anyProcess, channel, isSubprocess, ipc }) => {\n if (cancelListening) {\n return;\n }\n cancelListening = true;\n if (!ipc) {\n throwOnMissingParent();\n return;\n }\n if (channel === null) {\n abortOnDisconnect();\n return;\n }\n getIpcEmitter(anyProcess, channel, isSubprocess);\n await scheduler2.yield();\n};\nvar cancelListening = false;\nvar handleAbort = (wrappedMessage) => {\n if (wrappedMessage?.type !== GRACEFUL_CANCEL_TYPE) {\n return false;\n }\n cancelController.abort(wrappedMessage.message);\n return true;\n};\nvar GRACEFUL_CANCEL_TYPE = \"execa:ipc:cancel\";\nvar abortOnDisconnect = () => {\n cancelController.abort(getAbortDisconnectError());\n};\nvar cancelController = new AbortController;\nvar validateGracefulCancel = ({ gracefulCancel, cancelSignal, ipc, serialization }) => {\n if (!gracefulCancel) {\n return;\n }\n if (cancelSignal === undefined) {\n throw new Error(\"The `cancelSignal` option must be defined when setting the `gracefulCancel` option.\");\n }\n if (!ipc) {\n throw new Error(\"The `ipc` option cannot be false when setting the `gracefulCancel` option.\");\n }\n if (serialization === \"json\") {\n throw new Error(\"The `serialization` option cannot be 'json' when setting the `gracefulCancel` option.\");\n }\n};\nvar throwOnGracefulCancel = ({\n subprocess,\n cancelSignal,\n gracefulCancel,\n forceKillAfterDelay,\n context,\n controller\n}) => gracefulCancel ? [sendOnAbort({\n subprocess,\n cancelSignal,\n forceKillAfterDelay,\n context,\n controller\n})] : [];\nvar sendOnAbort = async ({ subprocess, cancelSignal, forceKillAfterDelay, context, controller: { signal } }) => {\n await onAbortedSignal(cancelSignal, signal);\n const reason = getReason(cancelSignal);\n await sendAbort(subprocess, reason);\n killOnTimeout({\n kill: subprocess.kill,\n forceKillAfterDelay,\n context,\n controllerSignal: signal\n });\n context.terminationReason ??= \"gracefulCancel\";\n throw cancelSignal.reason;\n};\nvar getReason = ({ reason }) => {\n if (!(reason instanceof DOMException)) {\n return reason;\n }\n const error = new Error(reason.message);\n Object.defineProperty(error, \"stack\", {\n value: reason.stack,\n enumerable: false,\n configurable: true,\n writable: true\n });\n return error;\n};\nvar validateTimeout = ({ timeout }) => {\n if (timeout !== undefined && (!Number.isFinite(timeout) || timeout < 0)) {\n throw new TypeError(`Expected the \\`timeout\\` option to be a non-negative integer, got \\`${timeout}\\` (${typeof timeout})`);\n }\n};\nvar throwOnTimeout = (subprocess, timeout, context, controller) => timeout === 0 || timeout === undefined ? [] : [killAfterTimeout(subprocess, timeout, context, controller)];\nvar killAfterTimeout = async (subprocess, timeout, context, { signal }) => {\n await setTimeout3(timeout, undefined, { signal });\n context.terminationReason ??= \"timeout\";\n subprocess.kill();\n throw new DiscardedError;\n};\nvar mapNode = ({ options }) => {\n if (options.node === false) {\n throw new TypeError('The \"node\" option cannot be false with `execaNode()`.');\n }\n return { options: { ...options, node: true } };\n};\nvar handleNodeOption = (file, commandArguments, {\n node: shouldHandleNode = false,\n nodePath = execPath,\n nodeOptions = execArgv.filter((nodeOption) => !nodeOption.startsWith(\"--inspect\")),\n cwd,\n execPath: formerNodePath,\n ...options\n}) => {\n if (formerNodePath !== undefined) {\n throw new TypeError('The \"execPath\" option has been removed. Please use the \"nodePath\" option instead.');\n }\n const normalizedNodePath = safeNormalizeFileUrl(nodePath, 'The \"nodePath\" option');\n const resolvedNodePath = path3.resolve(cwd, normalizedNodePath);\n const newOptions = {\n ...options,\n nodePath: resolvedNodePath,\n node: shouldHandleNode,\n cwd\n };\n if (!shouldHandleNode) {\n return [file, commandArguments, newOptions];\n }\n if (path3.basename(file, \".exe\") === \"node\") {\n throw new TypeError('When the \"node\" option is true, the first argument does not need to be \"node\".');\n }\n return [\n resolvedNodePath,\n [...nodeOptions, file, ...commandArguments],\n { ipc: true, ...newOptions, shell: false }\n ];\n};\nvar validateIpcInputOption = ({ ipcInput, ipc, serialization }) => {\n if (ipcInput === undefined) {\n return;\n }\n if (!ipc) {\n throw new Error(\"The `ipcInput` option cannot be set unless the `ipc` option is `true`.\");\n }\n validateIpcInput[serialization](ipcInput);\n};\nvar validateAdvancedInput = (ipcInput) => {\n try {\n serialize(ipcInput);\n } catch (error) {\n throw new Error(\"The `ipcInput` option is not serializable with a structured clone.\", { cause: error });\n }\n};\nvar validateJsonInput = (ipcInput) => {\n try {\n JSON.stringify(ipcInput);\n } catch (error) {\n throw new Error(\"The `ipcInput` option is not serializable with JSON.\", { cause: error });\n }\n};\nvar validateIpcInput = {\n advanced: validateAdvancedInput,\n json: validateJsonInput\n};\nvar sendIpcInput = async (subprocess, ipcInput) => {\n if (ipcInput === undefined) {\n return;\n }\n await subprocess.sendMessage(ipcInput);\n};\nvar validateEncoding = ({ encoding }) => {\n if (ENCODINGS.has(encoding)) {\n return;\n }\n const correctEncoding = getCorrectEncoding(encoding);\n if (correctEncoding !== undefined) {\n throw new TypeError(`Invalid option \\`encoding: ${serializeEncoding(encoding)}\\`.\nPlease rename it to ${serializeEncoding(correctEncoding)}.`);\n }\n const correctEncodings = [...ENCODINGS].map((correctEncoding2) => serializeEncoding(correctEncoding2)).join(\", \");\n throw new TypeError(`Invalid option \\`encoding: ${serializeEncoding(encoding)}\\`.\nPlease rename it to one of: ${correctEncodings}.`);\n};\nvar TEXT_ENCODINGS = new Set([\"utf8\", \"utf16le\"]);\nvar BINARY_ENCODINGS = new Set([\"buffer\", \"hex\", \"base64\", \"base64url\", \"latin1\", \"ascii\"]);\nvar ENCODINGS = new Set([...TEXT_ENCODINGS, ...BINARY_ENCODINGS]);\nvar getCorrectEncoding = (encoding) => {\n if (encoding === null) {\n return \"buffer\";\n }\n if (typeof encoding !== \"string\") {\n return;\n }\n const lowerEncoding = encoding.toLowerCase();\n if (lowerEncoding in ENCODING_ALIASES) {\n return ENCODING_ALIASES[lowerEncoding];\n }\n if (ENCODINGS.has(lowerEncoding)) {\n return lowerEncoding;\n }\n};\nvar ENCODING_ALIASES = {\n \"utf-8\": \"utf8\",\n \"utf-16le\": \"utf16le\",\n \"ucs-2\": \"utf16le\",\n ucs2: \"utf16le\",\n binary: \"latin1\"\n};\nvar serializeEncoding = (encoding) => typeof encoding === \"string\" ? `\"${encoding}\"` : String(encoding);\nvar normalizeCwd = (cwd = getDefaultCwd()) => {\n const cwdString = safeNormalizeFileUrl(cwd, 'The \"cwd\" option');\n return path4.resolve(cwdString);\n};\nvar getDefaultCwd = () => {\n try {\n return process5.cwd();\n } catch (error) {\n error.message = `The current directory does not exist.\n${error.message}`;\n throw error;\n }\n};\nvar fixCwdError = (originalMessage, cwd) => {\n if (cwd === getDefaultCwd()) {\n return originalMessage;\n }\n let cwdStat;\n try {\n cwdStat = statSync(cwd);\n } catch (error) {\n return `The \"cwd\" option is invalid: ${cwd}.\n${error.message}\n${originalMessage}`;\n }\n if (!cwdStat.isDirectory()) {\n return `The \"cwd\" option is not a directory: ${cwd}.\n${originalMessage}`;\n }\n return originalMessage;\n};\nvar normalizeOptions = (filePath, rawArguments, rawOptions) => {\n rawOptions.cwd = normalizeCwd(rawOptions.cwd);\n const [processedFile, processedArguments, processedOptions] = handleNodeOption(filePath, rawArguments, rawOptions);\n const { command: file, args: commandArguments, options: initialOptions } = import_cross_spawn.default._parse(processedFile, processedArguments, processedOptions);\n const fdOptions = normalizeFdSpecificOptions(initialOptions);\n const options = addDefaultOptions(fdOptions);\n validateTimeout(options);\n validateEncoding(options);\n validateIpcInputOption(options);\n validateCancelSignal(options);\n validateGracefulCancel(options);\n options.shell = normalizeFileUrl(options.shell);\n options.env = getEnv(options);\n options.killSignal = normalizeKillSignal(options.killSignal);\n options.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);\n options.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);\n if (process6.platform === \"win32\" && path5.basename(file, \".exe\") === \"cmd\") {\n commandArguments.unshift(\"/q\");\n }\n return { file, commandArguments, options };\n};\nvar addDefaultOptions = ({\n extendEnv = true,\n preferLocal = false,\n cwd,\n localDir: localDirectory = cwd,\n encoding = \"utf8\",\n reject = true,\n cleanup = true,\n all = false,\n windowsHide = true,\n killSignal = \"SIGTERM\",\n forceKillAfterDelay = true,\n gracefulCancel = false,\n ipcInput,\n ipc = ipcInput !== undefined || gracefulCancel,\n serialization = \"advanced\",\n ...options\n}) => ({\n ...options,\n extendEnv,\n preferLocal,\n cwd,\n localDirectory,\n encoding,\n reject,\n cleanup,\n all,\n windowsHide,\n killSignal,\n forceKillAfterDelay,\n gracefulCancel,\n ipcInput,\n ipc,\n serialization\n});\nvar getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath }) => {\n const env = extendEnv ? { ...process6.env, ...envOption } : envOption;\n if (preferLocal || node) {\n return npmRunPathEnv({\n env,\n cwd: localDirectory,\n execPath: nodePath,\n preferLocal,\n addExecPath: node\n });\n }\n return env;\n};\nvar concatenateShell = (file, commandArguments, options) => options.shell && commandArguments.length > 0 ? [[file, ...commandArguments].join(\" \"), [], options] : [file, commandArguments, options];\nfunction stripFinalNewline(input) {\n if (typeof input === \"string\") {\n return stripFinalNewlineString(input);\n }\n if (!(ArrayBuffer.isView(input) && input.BYTES_PER_ELEMENT === 1)) {\n throw new Error(\"Input must be a string or a Uint8Array\");\n }\n return stripFinalNewlineBinary(input);\n}\nvar stripFinalNewlineString = (input) => input.at(-1) === LF ? input.slice(0, input.at(-2) === CR ? -2 : -1) : input;\nvar stripFinalNewlineBinary = (input) => input.at(-1) === LF_BINARY ? input.subarray(0, input.at(-2) === CR_BINARY ? -2 : -1) : input;\nvar LF = `\n`;\nvar LF_BINARY = LF.codePointAt(0);\nvar CR = \"\\r\";\nvar CR_BINARY = CR.codePointAt(0);\nfunction isStream(stream, { checkOpen = true } = {}) {\n return stream !== null && typeof stream === \"object\" && (stream.writable || stream.readable || !checkOpen || stream.writable === undefined && stream.readable === undefined) && typeof stream.pipe === \"function\";\n}\nfunction isWritableStream(stream, { checkOpen = true } = {}) {\n return isStream(stream, { checkOpen }) && (stream.writable || !checkOpen) && typeof stream.write === \"function\" && typeof stream.end === \"function\" && typeof stream.writable === \"boolean\" && typeof stream.writableObjectMode === \"boolean\" && typeof stream.destroy === \"function\" && typeof stream.destroyed === \"boolean\";\n}\nfunction isReadableStream(stream, { checkOpen = true } = {}) {\n return isStream(stream, { checkOpen }) && (stream.readable || !checkOpen) && typeof stream.read === \"function\" && typeof stream.readable === \"boolean\" && typeof stream.readableObjectMode === \"boolean\" && typeof stream.destroy === \"function\" && typeof stream.destroyed === \"boolean\";\n}\nfunction isDuplexStream(stream, options) {\n return isWritableStream(stream, options) && isReadableStream(stream, options);\n}\nvar a = Object.getPrototypeOf(Object.getPrototypeOf(async function* () {}).prototype);\n\nclass c {\n #t;\n #n;\n #r = false;\n #e = undefined;\n constructor(e, t) {\n this.#t = e, this.#n = t;\n }\n next() {\n const e = () => this.#s();\n return this.#e = this.#e ? this.#e.then(e, e) : e(), this.#e;\n }\n return(e) {\n const t = () => this.#i(e);\n return this.#e ? this.#e.then(t, t) : t();\n }\n async#s() {\n if (this.#r)\n return {\n done: true,\n value: undefined\n };\n let e;\n try {\n e = await this.#t.read();\n } catch (t) {\n throw this.#e = undefined, this.#r = true, this.#t.releaseLock(), t;\n }\n return e.done && (this.#e = undefined, this.#r = true, this.#t.releaseLock()), e;\n }\n async#i(e) {\n if (this.#r)\n return {\n done: true,\n value: e\n };\n if (this.#r = true, !this.#n) {\n const t = this.#t.cancel(e);\n return this.#t.releaseLock(), await t, {\n done: true,\n value: e\n };\n }\n return this.#t.releaseLock(), {\n done: true,\n value: e\n };\n }\n}\nvar n = Symbol();\nfunction i() {\n return this[n].next();\n}\nObject.defineProperty(i, \"name\", { value: \"next\" });\nfunction o(r) {\n return this[n].return(r);\n}\nObject.defineProperty(o, \"name\", { value: \"return\" });\nvar u = Object.create(a, {\n next: {\n enumerable: true,\n configurable: true,\n writable: true,\n value: i\n },\n return: {\n enumerable: true,\n configurable: true,\n writable: true,\n value: o\n }\n});\nfunction h({ preventCancel: r = false } = {}) {\n const e = this.getReader(), t = new c(e, r), s = Object.create(u);\n return s[n] = t, s;\n}\nvar getAsyncIterable = (stream) => {\n if (isReadableStream(stream, { checkOpen: false }) && nodeImports.on !== undefined) {\n return getStreamIterable(stream);\n }\n if (typeof stream?.[Symbol.asyncIterator] === \"function\") {\n return stream;\n }\n if (toString.call(stream) === \"[object ReadableStream]\") {\n return h.call(stream);\n }\n throw new TypeError(\"The first argument must be a Readable, a ReadableStream, or an async iterable.\");\n};\nvar { toString } = Object.prototype;\nvar getStreamIterable = async function* (stream) {\n const controller = new AbortController;\n const state = {};\n handleStreamEnd(stream, controller, state);\n try {\n for await (const [chunk] of nodeImports.on(stream, \"data\", { signal: controller.signal })) {\n yield chunk;\n }\n } catch (error) {\n if (state.error !== undefined) {\n throw state.error;\n } else if (!controller.signal.aborted) {\n throw error;\n }\n } finally {\n stream.destroy();\n }\n};\nvar handleStreamEnd = async (stream, controller, state) => {\n try {\n await nodeImports.finished(stream, {\n cleanup: true,\n readable: true,\n writable: false,\n error: false\n });\n } catch (error) {\n state.error = error;\n } finally {\n controller.abort();\n }\n};\nvar nodeImports = {};\nvar getStreamContents = async (stream, { init, convertChunk, getSize, truncateChunk, addChunk, getFinalChunk, finalize }, { maxBuffer = Number.POSITIVE_INFINITY } = {}) => {\n const asyncIterable = getAsyncIterable(stream);\n const state = init();\n state.length = 0;\n try {\n for await (const chunk of asyncIterable) {\n const chunkType = getChunkType(chunk);\n const convertedChunk = convertChunk[chunkType](chunk, state);\n appendChunk({\n convertedChunk,\n state,\n getSize,\n truncateChunk,\n addChunk,\n maxBuffer\n });\n }\n appendFinalChunk({\n state,\n convertChunk,\n getSize,\n truncateChunk,\n addChunk,\n getFinalChunk,\n maxBuffer\n });\n return finalize(state);\n } catch (error) {\n const normalizedError = typeof error === \"object\" && error !== null ? error : new Error(error);\n normalizedError.bufferedData = finalize(state);\n throw normalizedError;\n }\n};\nvar appendFinalChunk = ({ state, getSize, truncateChunk, addChunk, getFinalChunk, maxBuffer }) => {\n const convertedChunk = getFinalChunk(state);\n if (convertedChunk !== undefined) {\n appendChunk({\n convertedChunk,\n state,\n getSize,\n truncateChunk,\n addChunk,\n maxBuffer\n });\n }\n};\nvar appendChunk = ({ convertedChunk, state, getSize, truncateChunk, addChunk, maxBuffer }) => {\n const chunkSize = getSize(convertedChunk);\n const newLength = state.length + chunkSize;\n if (newLength <= maxBuffer) {\n addNewChunk(convertedChunk, state, addChunk, newLength);\n return;\n }\n const truncatedChunk = truncateChunk(convertedChunk, maxBuffer - state.length);\n if (truncatedChunk !== undefined) {\n addNewChunk(truncatedChunk, state, addChunk, maxBuffer);\n }\n throw new MaxBufferError;\n};\nvar addNewChunk = (convertedChunk, state, addChunk, newLength) => {\n state.contents = addChunk(convertedChunk, state, newLength);\n state.length = newLength;\n};\nvar getChunkType = (chunk) => {\n const typeOfChunk = typeof chunk;\n if (typeOfChunk === \"string\") {\n return \"string\";\n }\n if (typeOfChunk !== \"object\" || chunk === null) {\n return \"others\";\n }\n if (globalThis.Buffer?.isBuffer(chunk)) {\n return \"buffer\";\n }\n const prototypeName = objectToString2.call(chunk);\n if (prototypeName === \"[object ArrayBuffer]\") {\n return \"arrayBuffer\";\n }\n if (prototypeName === \"[object DataView]\") {\n return \"dataView\";\n }\n if (Number.isInteger(chunk.byteLength) && Number.isInteger(chunk.byteOffset) && objectToString2.call(chunk.buffer) === \"[object ArrayBuffer]\") {\n return \"typedArray\";\n }\n return \"others\";\n};\nvar { toString: objectToString2 } = Object.prototype;\n\nclass MaxBufferError extends Error {\n name = \"MaxBufferError\";\n constructor() {\n super(\"maxBuffer exceeded\");\n }\n}\nvar identity2 = (value) => value;\nvar noop = () => {\n return;\n};\nvar getContentsProperty = ({ contents }) => contents;\nvar throwObjectStream = (chunk) => {\n throw new Error(`Streams in object mode are not supported: ${String(chunk)}`);\n};\nvar getLengthProperty = (convertedChunk) => convertedChunk.length;\nasync function getStreamAsArray(stream, options) {\n return getStreamContents(stream, arrayMethods, options);\n}\nvar initArray = () => ({ contents: [] });\nvar increment = () => 1;\nvar addArrayChunk = (convertedChunk, { contents }) => {\n contents.push(convertedChunk);\n return contents;\n};\nvar arrayMethods = {\n init: initArray,\n convertChunk: {\n string: identity2,\n buffer: identity2,\n arrayBuffer: identity2,\n dataView: identity2,\n typedArray: identity2,\n others: identity2\n },\n getSize: increment,\n truncateChunk: noop,\n addChunk: addArrayChunk,\n getFinalChunk: noop,\n finalize: getContentsProperty\n};\nasync function getStreamAsArrayBuffer(stream, options) {\n return getStreamContents(stream, arrayBufferMethods, options);\n}\nvar initArrayBuffer = () => ({ contents: new ArrayBuffer(0) });\nvar useTextEncoder = (chunk) => textEncoder2.encode(chunk);\nvar textEncoder2 = new TextEncoder;\nvar useUint8Array = (chunk) => new Uint8Array(chunk);\nvar useUint8ArrayWithOffset = (chunk) => new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);\nvar truncateArrayBufferChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);\nvar addArrayBufferChunk = (convertedChunk, { contents, length: previousLength }, length) => {\n const newContents = hasArrayBufferResize() ? resizeArrayBuffer(contents, length) : resizeArrayBufferSlow(contents, length);\n new Uint8Array(newContents).set(convertedChunk, previousLength);\n return newContents;\n};\nvar resizeArrayBufferSlow = (contents, length) => {\n if (length <= contents.byteLength) {\n return contents;\n }\n const arrayBuffer = new ArrayBuffer(getNewContentsLength(length));\n new Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);\n return arrayBuffer;\n};\nvar resizeArrayBuffer = (contents, length) => {\n if (length <= contents.maxByteLength) {\n contents.resize(length);\n return contents;\n }\n const arrayBuffer = new ArrayBuffer(length, { maxByteLength: getNewContentsLength(length) });\n new Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);\n return arrayBuffer;\n};\nvar getNewContentsLength = (length) => SCALE_FACTOR ** Math.ceil(Math.log(length) / Math.log(SCALE_FACTOR));\nvar SCALE_FACTOR = 2;\nvar finalizeArrayBuffer = ({ contents, length }) => hasArrayBufferResize() ? contents : contents.slice(0, length);\nvar hasArrayBufferResize = () => (\"resize\" in ArrayBuffer.prototype);\nvar arrayBufferMethods = {\n init: initArrayBuffer,\n convertChunk: {\n string: useTextEncoder,\n buffer: useUint8Array,\n arrayBuffer: useUint8Array,\n dataView: useUint8ArrayWithOffset,\n typedArray: useUint8ArrayWithOffset,\n others: throwObjectStream\n },\n getSize: getLengthProperty,\n truncateChunk: truncateArrayBufferChunk,\n addChunk: addArrayBufferChunk,\n getFinalChunk: noop,\n finalize: finalizeArrayBuffer\n};\nasync function getStreamAsString(stream, options) {\n return getStreamContents(stream, stringMethods, options);\n}\nvar initString = () => ({ contents: \"\", textDecoder: new TextDecoder });\nvar useTextDecoder = (chunk, { textDecoder: textDecoder2 }) => textDecoder2.decode(chunk, { stream: true });\nvar addStringChunk = (convertedChunk, { contents }) => contents + convertedChunk;\nvar truncateStringChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);\nvar getFinalStringChunk = ({ textDecoder: textDecoder2 }) => {\n const finalChunk = textDecoder2.decode();\n return finalChunk === \"\" ? undefined : finalChunk;\n};\nvar stringMethods = {\n init: initString,\n convertChunk: {\n string: identity2,\n buffer: useTextDecoder,\n arrayBuffer: useTextDecoder,\n dataView: useTextDecoder,\n typedArray: useTextDecoder,\n others: throwObjectStream\n },\n getSize: getLengthProperty,\n truncateChunk: truncateStringChunk,\n addChunk: addStringChunk,\n getFinalChunk: getFinalStringChunk,\n finalize: getContentsProperty\n};\nObject.assign(nodeImports, { on, finished });\nvar handleMaxBuffer = ({ error, stream, readableObjectMode, lines, encoding, fdNumber }) => {\n if (!(error instanceof MaxBufferError)) {\n throw error;\n }\n if (fdNumber === \"all\") {\n return error;\n }\n const unit = getMaxBufferUnit(readableObjectMode, lines, encoding);\n error.maxBufferInfo = { fdNumber, unit };\n stream.destroy();\n throw error;\n};\nvar getMaxBufferUnit = (readableObjectMode, lines, encoding) => {\n if (readableObjectMode) {\n return \"objects\";\n }\n if (lines) {\n return \"lines\";\n }\n if (encoding === \"buffer\") {\n return \"bytes\";\n }\n return \"characters\";\n};\nvar checkIpcMaxBuffer = (subprocess, ipcOutput, maxBuffer) => {\n if (ipcOutput.length !== maxBuffer) {\n return;\n }\n const error = new MaxBufferError;\n error.maxBufferInfo = { fdNumber: \"ipc\" };\n throw error;\n};\nvar getMaxBufferMessage = (error, maxBuffer) => {\n const { streamName, threshold, unit } = getMaxBufferInfo(error, maxBuffer);\n return `Command's ${streamName} was larger than ${threshold} ${unit}`;\n};\nvar getMaxBufferInfo = (error, maxBuffer) => {\n if (error?.maxBufferInfo === undefined) {\n return { streamName: \"output\", threshold: maxBuffer[1], unit: \"bytes\" };\n }\n const { maxBufferInfo: { fdNumber, unit } } = error;\n delete error.maxBufferInfo;\n const threshold = getFdSpecificValue(maxBuffer, fdNumber);\n if (fdNumber === \"ipc\") {\n return { streamName: \"IPC output\", threshold, unit: \"messages\" };\n }\n return { streamName: getStreamName(fdNumber), threshold, unit };\n};\nvar isMaxBufferSync = (resultError, output, maxBuffer) => resultError?.code === \"ENOBUFS\" && output !== null && output.some((result) => result !== null && result.length > getMaxBufferSync(maxBuffer));\nvar truncateMaxBufferSync = (result, isMaxBuffer, maxBuffer) => {\n if (!isMaxBuffer) {\n return result;\n }\n const maxBufferValue = getMaxBufferSync(maxBuffer);\n return result.length > maxBufferValue ? result.slice(0, maxBufferValue) : result;\n};\nvar getMaxBufferSync = ([, stdoutMaxBuffer]) => stdoutMaxBuffer;\nvar createMessages = ({\n stdio,\n all,\n ipcOutput,\n originalError,\n signal,\n signalDescription,\n exitCode,\n escapedCommand,\n timedOut,\n isCanceled,\n isGracefullyCanceled,\n isMaxBuffer,\n isForcefullyTerminated,\n forceKillAfterDelay,\n killSignal,\n maxBuffer,\n timeout,\n cwd\n}) => {\n const errorCode = originalError?.code;\n const prefix = getErrorPrefix({\n originalError,\n timedOut,\n timeout,\n isMaxBuffer,\n maxBuffer,\n errorCode,\n signal,\n signalDescription,\n exitCode,\n isCanceled,\n isGracefullyCanceled,\n isForcefullyTerminated,\n forceKillAfterDelay,\n killSignal\n });\n const originalMessage = getOriginalMessage(originalError, cwd);\n const suffix = originalMessage === undefined ? \"\" : `\n${originalMessage}`;\n const shortMessage = `${prefix}: ${escapedCommand}${suffix}`;\n const messageStdio = all === undefined ? [stdio[2], stdio[1]] : [all];\n const message = [\n shortMessage,\n ...messageStdio,\n ...stdio.slice(3),\n ipcOutput.map((ipcMessage) => serializeIpcMessage(ipcMessage)).join(`\n`)\n ].map((messagePart) => escapeLines(stripFinalNewline(serializeMessagePart(messagePart)))).filter(Boolean).join(`\n\n`);\n return { originalMessage, shortMessage, message };\n};\nvar getErrorPrefix = ({\n originalError,\n timedOut,\n timeout,\n isMaxBuffer,\n maxBuffer,\n errorCode,\n signal,\n signalDescription,\n exitCode,\n isCanceled,\n isGracefullyCanceled,\n isForcefullyTerminated,\n forceKillAfterDelay,\n killSignal\n}) => {\n const forcefulSuffix = getForcefulSuffix(isForcefullyTerminated, forceKillAfterDelay);\n if (timedOut) {\n return `Command timed out after ${timeout} milliseconds${forcefulSuffix}`;\n }\n if (isGracefullyCanceled) {\n if (signal === undefined) {\n return `Command was gracefully canceled with exit code ${exitCode}`;\n }\n return isForcefullyTerminated ? `Command was gracefully canceled${forcefulSuffix}` : `Command was gracefully canceled with ${signal} (${signalDescription})`;\n }\n if (isCanceled) {\n return `Command was canceled${forcefulSuffix}`;\n }\n if (isMaxBuffer) {\n return `${getMaxBufferMessage(originalError, maxBuffer)}${forcefulSuffix}`;\n }\n if (errorCode !== undefined) {\n return `Command failed with ${errorCode}${forcefulSuffix}`;\n }\n if (isForcefullyTerminated) {\n return `Command was killed with ${killSignal} (${getSignalDescription(killSignal)})${forcefulSuffix}`;\n }\n if (signal !== undefined) {\n return `Command was killed with ${signal} (${signalDescription})`;\n }\n if (exitCode !== undefined) {\n return `Command failed with exit code ${exitCode}`;\n }\n return \"Command failed\";\n};\nvar getForcefulSuffix = (isForcefullyTerminated, forceKillAfterDelay) => isForcefullyTerminated ? ` and was forcefully terminated after ${forceKillAfterDelay} milliseconds` : \"\";\nvar getOriginalMessage = (originalError, cwd) => {\n if (originalError instanceof DiscardedError) {\n return;\n }\n const originalMessage = isExecaError(originalError) ? originalError.originalMessage : String(originalError?.message ?? originalError);\n const escapedOriginalMessage = escapeLines(fixCwdError(originalMessage, cwd));\n return escapedOriginalMessage === \"\" ? undefined : escapedOriginalMessage;\n};\nvar serializeIpcMessage = (ipcMessage) => typeof ipcMessage === \"string\" ? ipcMessage : inspect2(ipcMessage);\nvar serializeMessagePart = (messagePart) => Array.isArray(messagePart) ? messagePart.map((messageItem) => stripFinalNewline(serializeMessageItem(messageItem))).filter(Boolean).join(`\n`) : serializeMessageItem(messagePart);\nvar serializeMessageItem = (messageItem) => {\n if (typeof messageItem === \"string\") {\n return messageItem;\n }\n if (isUint8Array(messageItem)) {\n return uint8ArrayToString(messageItem);\n }\n return \"\";\n};\nvar makeSuccessResult = ({\n command,\n escapedCommand,\n stdio,\n all,\n ipcOutput,\n options: { cwd },\n startTime\n}) => omitUndefinedProperties({\n command,\n escapedCommand,\n cwd,\n durationMs: getDurationMs(startTime),\n failed: false,\n timedOut: false,\n isCanceled: false,\n isGracefullyCanceled: false,\n isTerminated: false,\n isMaxBuffer: false,\n isForcefullyTerminated: false,\n exitCode: 0,\n stdout: stdio[1],\n stderr: stdio[2],\n all,\n stdio,\n ipcOutput,\n pipedFrom: []\n});\nvar makeEarlyError = ({\n error,\n command,\n escapedCommand,\n fileDescriptors,\n options,\n startTime,\n isSync\n}) => makeError({\n error,\n command,\n escapedCommand,\n startTime,\n timedOut: false,\n isCanceled: false,\n isGracefullyCanceled: false,\n isMaxBuffer: false,\n isForcefullyTerminated: false,\n stdio: Array.from({ length: fileDescriptors.length }),\n ipcOutput: [],\n options,\n isSync\n});\nvar makeError = ({\n error: originalError,\n command,\n escapedCommand,\n startTime,\n timedOut,\n isCanceled,\n isGracefullyCanceled,\n isMaxBuffer,\n isForcefullyTerminated,\n exitCode: rawExitCode,\n signal: rawSignal,\n stdio,\n all,\n ipcOutput,\n options: {\n timeoutDuration,\n timeout = timeoutDuration,\n forceKillAfterDelay,\n killSignal,\n cwd,\n maxBuffer\n },\n isSync\n}) => {\n const { exitCode, signal, signalDescription } = normalizeExitPayload(rawExitCode, rawSignal);\n const { originalMessage, shortMessage, message } = createMessages({\n stdio,\n all,\n ipcOutput,\n originalError,\n signal,\n signalDescription,\n exitCode,\n escapedCommand,\n timedOut,\n isCanceled,\n isGracefullyCanceled,\n isMaxBuffer,\n isForcefullyTerminated,\n forceKillAfterDelay,\n killSignal,\n maxBuffer,\n timeout,\n cwd\n });\n const error = getFinalError(originalError, message, isSync);\n Object.assign(error, getErrorProperties({\n error,\n command,\n escapedCommand,\n startTime,\n timedOut,\n isCanceled,\n isGracefullyCanceled,\n isMaxBuffer,\n isForcefullyTerminated,\n exitCode,\n signal,\n signalDescription,\n stdio,\n all,\n ipcOutput,\n cwd,\n originalMessage,\n shortMessage\n }));\n return error;\n};\nvar getErrorProperties = ({\n error,\n command,\n escapedCommand,\n startTime,\n timedOut,\n isCanceled,\n isGracefullyCanceled,\n isMaxBuffer,\n isForcefullyTerminated,\n exitCode,\n signal,\n signalDescription,\n stdio,\n all,\n ipcOutput,\n cwd,\n originalMessage,\n shortMessage\n}) => omitUndefinedProperties({\n shortMessage,\n originalMessage,\n command,\n escapedCommand,\n cwd,\n durationMs: getDurationMs(startTime),\n failed: true,\n timedOut,\n isCanceled,\n isGracefullyCanceled,\n isTerminated: signal !== undefined,\n isMaxBuffer,\n isForcefullyTerminated,\n exitCode,\n signal,\n signalDescription,\n code: error.cause?.code,\n stdout: stdio[1],\n stderr: stdio[2],\n all,\n stdio,\n ipcOutput,\n pipedFrom: []\n});\nvar omitUndefinedProperties = (result) => Object.fromEntries(Object.entries(result).filter(([, value]) => value !== undefined));\nvar normalizeExitPayload = (rawExitCode, rawSignal) => {\n const exitCode = rawExitCode === null ? undefined : rawExitCode;\n const signal = rawSignal === null ? undefined : rawSignal;\n const signalDescription = signal === undefined ? undefined : getSignalDescription(rawSignal);\n return { exitCode, signal, signalDescription };\n};\nvar toZeroIfInfinity = (value) => Number.isFinite(value) ? value : 0;\nfunction parseNumber(milliseconds) {\n return {\n days: Math.trunc(milliseconds / 86400000),\n hours: Math.trunc(milliseconds / 3600000 % 24),\n minutes: Math.trunc(milliseconds / 60000 % 60),\n seconds: Math.trunc(milliseconds / 1000 % 60),\n milliseconds: Math.trunc(milliseconds % 1000),\n microseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1000) % 1000),\n nanoseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1e6) % 1000)\n };\n}\nfunction parseBigint(milliseconds) {\n return {\n days: milliseconds / 86400000n,\n hours: milliseconds / 3600000n % 24n,\n minutes: milliseconds / 60000n % 60n,\n seconds: milliseconds / 1000n % 60n,\n milliseconds: milliseconds % 1000n,\n microseconds: 0n,\n nanoseconds: 0n\n };\n}\nfunction parseMilliseconds(milliseconds) {\n switch (typeof milliseconds) {\n case \"number\": {\n if (Number.isFinite(milliseconds)) {\n return parseNumber(milliseconds);\n }\n break;\n }\n case \"bigint\": {\n return parseBigint(milliseconds);\n }\n }\n throw new TypeError(\"Expected a finite number or bigint\");\n}\nvar isZero = (value) => value === 0 || value === 0n;\nvar pluralize = (word, count2) => count2 === 1 || count2 === 1n ? word : `${word}s`;\nvar SECOND_ROUNDING_EPSILON = 0.0000001;\nvar ONE_DAY_IN_MILLISECONDS = 24n * 60n * 60n * 1000n;\nfunction prettyMilliseconds(milliseconds, options) {\n const isBigInt = typeof milliseconds === \"bigint\";\n if (!isBigInt && !Number.isFinite(milliseconds)) {\n throw new TypeError(\"Expected a finite number or bigint\");\n }\n options = { ...options };\n const sign = milliseconds < 0 ? \"-\" : \"\";\n milliseconds = milliseconds < 0 ? -milliseconds : milliseconds;\n if (options.colonNotation) {\n options.compact = false;\n options.formatSubMilliseconds = false;\n options.separateMilliseconds = false;\n options.verbose = false;\n }\n if (options.compact) {\n options.unitCount = 1;\n options.secondsDecimalDigits = 0;\n options.millisecondsDecimalDigits = 0;\n }\n let result = [];\n const floorDecimals = (value, decimalDigits) => {\n const flooredInterimValue = Math.floor(value * 10 ** decimalDigits + SECOND_ROUNDING_EPSILON);\n const flooredValue = Math.round(flooredInterimValue) / 10 ** decimalDigits;\n return flooredValue.toFixed(decimalDigits);\n };\n const add = (value, long, short, valueString) => {\n if ((result.length === 0 || !options.colonNotation) && isZero(value) && !(options.colonNotation && short === \"m\")) {\n return;\n }\n valueString ??= String(value);\n if (options.colonNotation) {\n const wholeDigits = valueString.includes(\".\") ? valueString.split(\".\")[0].length : valueString.length;\n const minLength = result.length > 0 ? 2 : 1;\n valueString = \"0\".repeat(Math.max(0, minLength - wholeDigits)) + valueString;\n } else {\n valueString += options.verbose ? \" \" + pluralize(long, value) : short;\n }\n result.push(valueString);\n };\n const parsed = parseMilliseconds(milliseconds);\n const days = BigInt(parsed.days);\n if (options.hideYearAndDays) {\n add(BigInt(days) * 24n + BigInt(parsed.hours), \"hour\", \"h\");\n } else {\n if (options.hideYear) {\n add(days, \"day\", \"d\");\n } else {\n add(days / 365n, \"year\", \"y\");\n add(days % 365n, \"day\", \"d\");\n }\n add(Number(parsed.hours), \"hour\", \"h\");\n }\n add(Number(parsed.minutes), \"minute\", \"m\");\n if (!options.hideSeconds) {\n if (options.separateMilliseconds || options.formatSubMilliseconds || !options.colonNotation && milliseconds < 1000 && !options.subSecondsAsDecimals) {\n const seconds = Number(parsed.seconds);\n const milliseconds2 = Number(parsed.milliseconds);\n const microseconds = Number(parsed.microseconds);\n const nanoseconds = Number(parsed.nanoseconds);\n add(seconds, \"second\", \"s\");\n if (options.formatSubMilliseconds) {\n add(milliseconds2, \"millisecond\", \"ms\");\n add(microseconds, \"microsecond\", \"µs\");\n add(nanoseconds, \"nanosecond\", \"ns\");\n } else {\n const millisecondsAndBelow = milliseconds2 + microseconds / 1000 + nanoseconds / 1e6;\n const millisecondsDecimalDigits = typeof options.millisecondsDecimalDigits === \"number\" ? options.millisecondsDecimalDigits : 0;\n const roundedMilliseconds = millisecondsAndBelow >= 1 ? Math.round(millisecondsAndBelow) : Math.ceil(millisecondsAndBelow);\n const millisecondsString = millisecondsDecimalDigits ? millisecondsAndBelow.toFixed(millisecondsDecimalDigits) : roundedMilliseconds;\n add(Number.parseFloat(millisecondsString), \"millisecond\", \"ms\", millisecondsString);\n }\n } else {\n const seconds = (isBigInt ? Number(milliseconds % ONE_DAY_IN_MILLISECONDS) : milliseconds) / 1000 % 60;\n const secondsDecimalDigits = typeof options.secondsDecimalDigits === \"number\" ? options.secondsDecimalDigits : 1;\n const secondsFixed = floorDecimals(seconds, secondsDecimalDigits);\n const secondsString = options.keepDecimalsOnWholeSeconds ? secondsFixed : secondsFixed.replace(/\\.0+$/, \"\");\n add(Number.parseFloat(secondsString), \"second\", \"s\", secondsString);\n }\n }\n if (result.length === 0) {\n return sign + \"0\" + (options.verbose ? \" milliseconds\" : \"ms\");\n }\n const separator = options.colonNotation ? \":\" : \" \";\n if (typeof options.unitCount === \"number\") {\n result = result.slice(0, Math.max(options.unitCount, 1));\n }\n return sign + result.join(separator);\n}\nvar logError = (result, verboseInfo) => {\n if (result.failed) {\n verboseLog({\n type: \"error\",\n verboseMessage: result.shortMessage,\n verboseInfo,\n result\n });\n }\n};\nvar logResult = (result, verboseInfo) => {\n if (!isVerbose(verboseInfo)) {\n return;\n }\n logError(result, verboseInfo);\n logDuration(result, verboseInfo);\n};\nvar logDuration = (result, verboseInfo) => {\n const verboseMessage = `(done in ${prettyMilliseconds(result.durationMs)})`;\n verboseLog({\n type: \"duration\",\n verboseMessage,\n verboseInfo,\n result\n });\n};\nvar handleResult = (result, verboseInfo, { reject }) => {\n logResult(result, verboseInfo);\n if (result.failed && reject) {\n throw result;\n }\n return result;\n};\nvar getStdioItemType = (value, optionName) => {\n if (isAsyncGenerator(value)) {\n return \"asyncGenerator\";\n }\n if (isSyncGenerator(value)) {\n return \"generator\";\n }\n if (isUrl(value)) {\n return \"fileUrl\";\n }\n if (isFilePathObject(value)) {\n return \"filePath\";\n }\n if (isWebStream(value)) {\n return \"webStream\";\n }\n if (isStream(value, { checkOpen: false })) {\n return \"native\";\n }\n if (isUint8Array(value)) {\n return \"uint8Array\";\n }\n if (isAsyncIterableObject(value)) {\n return \"asyncIterable\";\n }\n if (isIterableObject(value)) {\n return \"iterable\";\n }\n if (isTransformStream(value)) {\n return getTransformStreamType({ transform: value }, optionName);\n }\n if (isTransformOptions(value)) {\n return getTransformObjectType(value, optionName);\n }\n return \"native\";\n};\nvar getTransformObjectType = (value, optionName) => {\n if (isDuplexStream(value.transform, { checkOpen: false })) {\n return getDuplexType(value, optionName);\n }\n if (isTransformStream(value.transform)) {\n return getTransformStreamType(value, optionName);\n }\n return getGeneratorObjectType(value, optionName);\n};\nvar getDuplexType = (value, optionName) => {\n validateNonGeneratorType(value, optionName, \"Duplex stream\");\n return \"duplex\";\n};\nvar getTransformStreamType = (value, optionName) => {\n validateNonGeneratorType(value, optionName, \"web TransformStream\");\n return \"webTransform\";\n};\nvar validateNonGeneratorType = ({ final, binary, objectMode }, optionName, typeName) => {\n checkUndefinedOption(final, `${optionName}.final`, typeName);\n checkUndefinedOption(binary, `${optionName}.binary`, typeName);\n checkBooleanOption(objectMode, `${optionName}.objectMode`);\n};\nvar checkUndefinedOption = (value, optionName, typeName) => {\n if (value !== undefined) {\n throw new TypeError(`The \\`${optionName}\\` option can only be defined when using a generator, not a ${typeName}.`);\n }\n};\nvar getGeneratorObjectType = ({ transform, final, binary, objectMode }, optionName) => {\n if (transform !== undefined && !isGenerator(transform)) {\n throw new TypeError(`The \\`${optionName}.transform\\` option must be a generator, a Duplex stream or a web TransformStream.`);\n }\n if (isDuplexStream(final, { checkOpen: false })) {\n throw new TypeError(`The \\`${optionName}.final\\` option must not be a Duplex stream.`);\n }\n if (isTransformStream(final)) {\n throw new TypeError(`The \\`${optionName}.final\\` option must not be a web TransformStream.`);\n }\n if (final !== undefined && !isGenerator(final)) {\n throw new TypeError(`The \\`${optionName}.final\\` option must be a generator.`);\n }\n checkBooleanOption(binary, `${optionName}.binary`);\n checkBooleanOption(objectMode, `${optionName}.objectMode`);\n return isAsyncGenerator(transform) || isAsyncGenerator(final) ? \"asyncGenerator\" : \"generator\";\n};\nvar checkBooleanOption = (value, optionName) => {\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new TypeError(`The \\`${optionName}\\` option must use a boolean.`);\n }\n};\nvar isGenerator = (value) => isAsyncGenerator(value) || isSyncGenerator(value);\nvar isAsyncGenerator = (value) => Object.prototype.toString.call(value) === \"[object AsyncGeneratorFunction]\";\nvar isSyncGenerator = (value) => Object.prototype.toString.call(value) === \"[object GeneratorFunction]\";\nvar isTransformOptions = (value) => isPlainObject(value) && (value.transform !== undefined || value.final !== undefined);\nvar isUrl = (value) => Object.prototype.toString.call(value) === \"[object URL]\";\nvar isRegularUrl = (value) => isUrl(value) && value.protocol !== \"file:\";\nvar isFilePathObject = (value) => isPlainObject(value) && Object.keys(value).length > 0 && Object.keys(value).every((key) => FILE_PATH_KEYS.has(key)) && isFilePathString(value.file);\nvar FILE_PATH_KEYS = new Set([\"file\", \"append\"]);\nvar isFilePathString = (file) => typeof file === \"string\";\nvar isUnknownStdioString = (type, value) => type === \"native\" && typeof value === \"string\" && !KNOWN_STDIO_STRINGS.has(value);\nvar KNOWN_STDIO_STRINGS = new Set([\"ipc\", \"ignore\", \"inherit\", \"overlapped\", \"pipe\"]);\nvar isReadableStream2 = (value) => Object.prototype.toString.call(value) === \"[object ReadableStream]\";\nvar isWritableStream2 = (value) => Object.prototype.toString.call(value) === \"[object WritableStream]\";\nvar isWebStream = (value) => isReadableStream2(value) || isWritableStream2(value);\nvar isTransformStream = (value) => isReadableStream2(value?.readable) && isWritableStream2(value?.writable);\nvar isAsyncIterableObject = (value) => isObject(value) && typeof value[Symbol.asyncIterator] === \"function\";\nvar isIterableObject = (value) => isObject(value) && typeof value[Symbol.iterator] === \"function\";\nvar isObject = (value) => typeof value === \"object\" && value !== null;\nvar TRANSFORM_TYPES = new Set([\"generator\", \"asyncGenerator\", \"duplex\", \"webTransform\"]);\nvar FILE_TYPES = new Set([\"fileUrl\", \"filePath\", \"fileNumber\"]);\nvar SPECIAL_DUPLICATE_TYPES_SYNC = new Set([\"fileUrl\", \"filePath\"]);\nvar SPECIAL_DUPLICATE_TYPES = new Set([...SPECIAL_DUPLICATE_TYPES_SYNC, \"webStream\", \"nodeStream\"]);\nvar FORBID_DUPLICATE_TYPES = new Set([\"webTransform\", \"duplex\"]);\nvar TYPE_TO_MESSAGE = {\n generator: \"a generator\",\n asyncGenerator: \"an async generator\",\n fileUrl: \"a file URL\",\n filePath: \"a file path string\",\n fileNumber: \"a file descriptor number\",\n webStream: \"a web stream\",\n nodeStream: \"a Node.js stream\",\n webTransform: \"a web TransformStream\",\n duplex: \"a Duplex stream\",\n native: \"any value\",\n iterable: \"an iterable\",\n asyncIterable: \"an async iterable\",\n string: \"a string\",\n uint8Array: \"a Uint8Array\"\n};\nvar getTransformObjectModes = (objectMode, index, newTransforms, direction) => direction === \"output\" ? getOutputObjectModes(objectMode, index, newTransforms) : getInputObjectModes(objectMode, index, newTransforms);\nvar getOutputObjectModes = (objectMode, index, newTransforms) => {\n const writableObjectMode = index !== 0 && newTransforms[index - 1].value.readableObjectMode;\n const readableObjectMode = objectMode ?? writableObjectMode;\n return { writableObjectMode, readableObjectMode };\n};\nvar getInputObjectModes = (objectMode, index, newTransforms) => {\n const writableObjectMode = index === 0 ? objectMode === true : newTransforms[index - 1].value.readableObjectMode;\n const readableObjectMode = index !== newTransforms.length - 1 && (objectMode ?? writableObjectMode);\n return { writableObjectMode, readableObjectMode };\n};\nvar getFdObjectMode = (stdioItems, direction) => {\n const lastTransform = stdioItems.findLast(({ type }) => TRANSFORM_TYPES.has(type));\n if (lastTransform === undefined) {\n return false;\n }\n return direction === \"input\" ? lastTransform.value.writableObjectMode : lastTransform.value.readableObjectMode;\n};\nvar normalizeTransforms = (stdioItems, optionName, direction, options) => [\n ...stdioItems.filter(({ type }) => !TRANSFORM_TYPES.has(type)),\n ...getTransforms(stdioItems, optionName, direction, options)\n];\nvar getTransforms = (stdioItems, optionName, direction, { encoding }) => {\n const transforms = stdioItems.filter(({ type }) => TRANSFORM_TYPES.has(type));\n const newTransforms = Array.from({ length: transforms.length });\n for (const [index, stdioItem] of Object.entries(transforms)) {\n newTransforms[index] = normalizeTransform({\n stdioItem,\n index: Number(index),\n newTransforms,\n optionName,\n direction,\n encoding\n });\n }\n return sortTransforms(newTransforms, direction);\n};\nvar normalizeTransform = ({ stdioItem, stdioItem: { type }, index, newTransforms, optionName, direction, encoding }) => {\n if (type === \"duplex\") {\n return normalizeDuplex({ stdioItem, optionName });\n }\n if (type === \"webTransform\") {\n return normalizeTransformStream({\n stdioItem,\n index,\n newTransforms,\n direction\n });\n }\n return normalizeGenerator({\n stdioItem,\n index,\n newTransforms,\n direction,\n encoding\n });\n};\nvar normalizeDuplex = ({\n stdioItem,\n stdioItem: {\n value: {\n transform,\n transform: { writableObjectMode, readableObjectMode },\n objectMode = readableObjectMode\n }\n },\n optionName\n}) => {\n if (objectMode && !readableObjectMode) {\n throw new TypeError(`The \\`${optionName}.objectMode\\` option can only be \\`true\\` if \\`new Duplex({objectMode: true})\\` is used.`);\n }\n if (!objectMode && readableObjectMode) {\n throw new TypeError(`The \\`${optionName}.objectMode\\` option cannot be \\`false\\` if \\`new Duplex({objectMode: true})\\` is used.`);\n }\n return {\n ...stdioItem,\n value: { transform, writableObjectMode, readableObjectMode }\n };\n};\nvar normalizeTransformStream = ({ stdioItem, stdioItem: { value }, index, newTransforms, direction }) => {\n const { transform, objectMode } = isPlainObject(value) ? value : { transform: value };\n const { writableObjectMode, readableObjectMode } = getTransformObjectModes(objectMode, index, newTransforms, direction);\n return {\n ...stdioItem,\n value: { transform, writableObjectMode, readableObjectMode }\n };\n};\nvar normalizeGenerator = ({ stdioItem, stdioItem: { value }, index, newTransforms, direction, encoding }) => {\n const {\n transform,\n final,\n binary: binaryOption = false,\n preserveNewlines = false,\n objectMode\n } = isPlainObject(value) ? value : { transform: value };\n const binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n const { writableObjectMode, readableObjectMode } = getTransformObjectModes(objectMode, index, newTransforms, direction);\n return {\n ...stdioItem,\n value: {\n transform,\n final,\n binary,\n preserveNewlines,\n writableObjectMode,\n readableObjectMode\n }\n };\n};\nvar sortTransforms = (newTransforms, direction) => direction === \"input\" ? newTransforms.reverse() : newTransforms;\nvar getStreamDirection = (stdioItems, fdNumber, optionName) => {\n const directions = stdioItems.map((stdioItem) => getStdioItemDirection(stdioItem, fdNumber));\n if (directions.includes(\"input\") && directions.includes(\"output\")) {\n throw new TypeError(`The \\`${optionName}\\` option must not be an array of both readable and writable values.`);\n }\n return directions.find(Boolean) ?? DEFAULT_DIRECTION;\n};\nvar getStdioItemDirection = ({ type, value }, fdNumber) => KNOWN_DIRECTIONS[fdNumber] ?? guessStreamDirection[type](value);\nvar KNOWN_DIRECTIONS = [\"input\", \"output\", \"output\"];\nvar anyDirection = () => {\n return;\n};\nvar alwaysInput = () => \"input\";\nvar guessStreamDirection = {\n generator: anyDirection,\n asyncGenerator: anyDirection,\n fileUrl: anyDirection,\n filePath: anyDirection,\n iterable: alwaysInput,\n asyncIterable: alwaysInput,\n uint8Array: alwaysInput,\n webStream: (value) => isWritableStream2(value) ? \"output\" : \"input\",\n nodeStream(value) {\n if (!isReadableStream(value, { checkOpen: false })) {\n return \"output\";\n }\n return isWritableStream(value, { checkOpen: false }) ? undefined : \"input\";\n },\n webTransform: anyDirection,\n duplex: anyDirection,\n native(value) {\n const standardStreamDirection = getStandardStreamDirection(value);\n if (standardStreamDirection !== undefined) {\n return standardStreamDirection;\n }\n if (isStream(value, { checkOpen: false })) {\n return guessStreamDirection.nodeStream(value);\n }\n }\n};\nvar getStandardStreamDirection = (value) => {\n if ([0, process7.stdin].includes(value)) {\n return \"input\";\n }\n if ([1, 2, process7.stdout, process7.stderr].includes(value)) {\n return \"output\";\n }\n};\nvar DEFAULT_DIRECTION = \"output\";\nvar normalizeIpcStdioArray = (stdioArray, ipc) => ipc && !stdioArray.includes(\"ipc\") ? [...stdioArray, \"ipc\"] : stdioArray;\nvar normalizeStdioOption = ({ stdio, ipc, buffer, ...options }, verboseInfo, isSync) => {\n const stdioArray = getStdioArray(stdio, options).map((stdioOption, fdNumber) => addDefaultValue2(stdioOption, fdNumber));\n return isSync ? normalizeStdioSync(stdioArray, buffer, verboseInfo) : normalizeIpcStdioArray(stdioArray, ipc);\n};\nvar getStdioArray = (stdio, options) => {\n if (stdio === undefined) {\n return STANDARD_STREAMS_ALIASES.map((alias) => options[alias]);\n }\n if (hasAlias(options)) {\n throw new Error(`It's not possible to provide \\`stdio\\` in combination with one of ${STANDARD_STREAMS_ALIASES.map((alias) => `\\`${alias}\\``).join(\", \")}`);\n }\n if (typeof stdio === \"string\") {\n return [stdio, stdio, stdio];\n }\n if (!Array.isArray(stdio)) {\n throw new TypeError(`Expected \\`stdio\\` to be of type \\`string\\` or \\`Array\\`, got \\`${typeof stdio}\\``);\n }\n const length = Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length);\n return Array.from({ length }, (_, fdNumber) => stdio[fdNumber]);\n};\nvar hasAlias = (options) => STANDARD_STREAMS_ALIASES.some((alias) => options[alias] !== undefined);\nvar addDefaultValue2 = (stdioOption, fdNumber) => {\n if (Array.isArray(stdioOption)) {\n return stdioOption.map((item) => addDefaultValue2(item, fdNumber));\n }\n if (stdioOption === null || stdioOption === undefined) {\n return fdNumber >= STANDARD_STREAMS_ALIASES.length ? \"ignore\" : \"pipe\";\n }\n return stdioOption;\n};\nvar normalizeStdioSync = (stdioArray, buffer, verboseInfo) => stdioArray.map((stdioOption, fdNumber) => !buffer[fdNumber] && fdNumber !== 0 && !isFullVerbose(verboseInfo, fdNumber) && isOutputPipeOnly(stdioOption) ? \"ignore\" : stdioOption);\nvar isOutputPipeOnly = (stdioOption) => stdioOption === \"pipe\" || Array.isArray(stdioOption) && stdioOption.every((item) => item === \"pipe\");\nvar handleNativeStream = ({ stdioItem, stdioItem: { type }, isStdioArray, fdNumber, direction, isSync }) => {\n if (!isStdioArray || type !== \"native\") {\n return stdioItem;\n }\n return isSync ? handleNativeStreamSync({ stdioItem, fdNumber, direction }) : handleNativeStreamAsync({ stdioItem, fdNumber });\n};\nvar handleNativeStreamSync = ({ stdioItem, stdioItem: { value, optionName }, fdNumber, direction }) => {\n const targetFd = getTargetFd({\n value,\n optionName,\n fdNumber,\n direction\n });\n if (targetFd !== undefined) {\n return targetFd;\n }\n if (isStream(value, { checkOpen: false })) {\n throw new TypeError(`The \\`${optionName}: Stream\\` option cannot both be an array and include a stream with synchronous methods.`);\n }\n return stdioItem;\n};\nvar getTargetFd = ({ value, optionName, fdNumber, direction }) => {\n const targetFdNumber = getTargetFdNumber(value, fdNumber);\n if (targetFdNumber === undefined) {\n return;\n }\n if (direction === \"output\") {\n return { type: \"fileNumber\", value: targetFdNumber, optionName };\n }\n if (tty2.isatty(targetFdNumber)) {\n throw new TypeError(`The \\`${optionName}: ${serializeOptionValue(value)}\\` option is invalid: it cannot be a TTY with synchronous methods.`);\n }\n return { type: \"uint8Array\", value: bufferToUint8Array(readFileSync(targetFdNumber)), optionName };\n};\nvar getTargetFdNumber = (value, fdNumber) => {\n if (value === \"inherit\") {\n return fdNumber;\n }\n if (typeof value === \"number\") {\n return value;\n }\n const standardStreamIndex = STANDARD_STREAMS.indexOf(value);\n if (standardStreamIndex !== -1) {\n return standardStreamIndex;\n }\n};\nvar handleNativeStreamAsync = ({ stdioItem, stdioItem: { value, optionName }, fdNumber }) => {\n if (value === \"inherit\") {\n return { type: \"nodeStream\", value: getStandardStream(fdNumber, value, optionName), optionName };\n }\n if (typeof value === \"number\") {\n return { type: \"nodeStream\", value: getStandardStream(value, value, optionName), optionName };\n }\n if (isStream(value, { checkOpen: false })) {\n return { type: \"nodeStream\", value, optionName };\n }\n return stdioItem;\n};\nvar getStandardStream = (fdNumber, value, optionName) => {\n const standardStream = STANDARD_STREAMS[fdNumber];\n if (standardStream === undefined) {\n throw new TypeError(`The \\`${optionName}: ${value}\\` option is invalid: no such standard stream.`);\n }\n return standardStream;\n};\nvar handleInputOptions = ({ input, inputFile }, fdNumber) => fdNumber === 0 ? [\n ...handleInputOption(input),\n ...handleInputFileOption(inputFile)\n] : [];\nvar handleInputOption = (input) => input === undefined ? [] : [{\n type: getInputType(input),\n value: input,\n optionName: \"input\"\n}];\nvar getInputType = (input) => {\n if (isReadableStream(input, { checkOpen: false })) {\n return \"nodeStream\";\n }\n if (typeof input === \"string\") {\n return \"string\";\n }\n if (isUint8Array(input)) {\n return \"uint8Array\";\n }\n throw new Error(\"The `input` option must be a string, a Uint8Array or a Node.js Readable stream.\");\n};\nvar handleInputFileOption = (inputFile) => inputFile === undefined ? [] : [{\n ...getInputFileType(inputFile),\n optionName: \"inputFile\"\n}];\nvar getInputFileType = (inputFile) => {\n if (isUrl(inputFile)) {\n return { type: \"fileUrl\", value: inputFile };\n }\n if (isFilePathString(inputFile)) {\n return { type: \"filePath\", value: { file: inputFile } };\n }\n throw new Error(\"The `inputFile` option must be a file path string or a file URL.\");\n};\nvar filterDuplicates = (stdioItems) => stdioItems.filter((stdioItemOne, indexOne) => stdioItems.every((stdioItemTwo, indexTwo) => stdioItemOne.value !== stdioItemTwo.value || indexOne >= indexTwo || stdioItemOne.type === \"generator\" || stdioItemOne.type === \"asyncGenerator\"));\nvar getDuplicateStream = ({ stdioItem: { type, value, optionName }, direction, fileDescriptors, isSync }) => {\n const otherStdioItems = getOtherStdioItems(fileDescriptors, type);\n if (otherStdioItems.length === 0) {\n return;\n }\n if (isSync) {\n validateDuplicateStreamSync({\n otherStdioItems,\n type,\n value,\n optionName,\n direction\n });\n return;\n }\n if (SPECIAL_DUPLICATE_TYPES.has(type)) {\n return getDuplicateStreamInstance({\n otherStdioItems,\n type,\n value,\n optionName,\n direction\n });\n }\n if (FORBID_DUPLICATE_TYPES.has(type)) {\n validateDuplicateTransform({\n otherStdioItems,\n type,\n value,\n optionName\n });\n }\n};\nvar getOtherStdioItems = (fileDescriptors, type) => fileDescriptors.flatMap(({ direction, stdioItems }) => stdioItems.filter((stdioItem) => stdioItem.type === type).map((stdioItem) => ({ ...stdioItem, direction })));\nvar validateDuplicateStreamSync = ({ otherStdioItems, type, value, optionName, direction }) => {\n if (SPECIAL_DUPLICATE_TYPES_SYNC.has(type)) {\n getDuplicateStreamInstance({\n otherStdioItems,\n type,\n value,\n optionName,\n direction\n });\n }\n};\nvar getDuplicateStreamInstance = ({ otherStdioItems, type, value, optionName, direction }) => {\n const duplicateStdioItems = otherStdioItems.filter((stdioItem) => hasSameValue(stdioItem, value));\n if (duplicateStdioItems.length === 0) {\n return;\n }\n const differentStdioItem = duplicateStdioItems.find((stdioItem) => stdioItem.direction !== direction);\n throwOnDuplicateStream(differentStdioItem, optionName, type);\n return direction === \"output\" ? duplicateStdioItems[0].stream : undefined;\n};\nvar hasSameValue = ({ type, value }, secondValue) => {\n if (type === \"filePath\") {\n return value.file === secondValue.file;\n }\n if (type === \"fileUrl\") {\n return value.href === secondValue.href;\n }\n return value === secondValue;\n};\nvar validateDuplicateTransform = ({ otherStdioItems, type, value, optionName }) => {\n const duplicateStdioItem = otherStdioItems.find(({ value: { transform } }) => transform === value.transform);\n throwOnDuplicateStream(duplicateStdioItem, optionName, type);\n};\nvar throwOnDuplicateStream = (stdioItem, optionName, type) => {\n if (stdioItem !== undefined) {\n throw new TypeError(`The \\`${stdioItem.optionName}\\` and \\`${optionName}\\` options must not target ${TYPE_TO_MESSAGE[type]} that is the same.`);\n }\n};\nvar handleStdio = (addProperties, options, verboseInfo, isSync) => {\n const stdio = normalizeStdioOption(options, verboseInfo, isSync);\n const initialFileDescriptors = stdio.map((stdioOption, fdNumber) => getFileDescriptor({\n stdioOption,\n fdNumber,\n options,\n isSync\n }));\n const fileDescriptors = getFinalFileDescriptors({\n initialFileDescriptors,\n addProperties,\n options,\n isSync\n });\n options.stdio = fileDescriptors.map(({ stdioItems }) => forwardStdio(stdioItems));\n return fileDescriptors;\n};\nvar getFileDescriptor = ({ stdioOption, fdNumber, options, isSync }) => {\n const optionName = getStreamName(fdNumber);\n const { stdioItems: initialStdioItems, isStdioArray } = initializeStdioItems({\n stdioOption,\n fdNumber,\n options,\n optionName\n });\n const direction = getStreamDirection(initialStdioItems, fdNumber, optionName);\n const stdioItems = initialStdioItems.map((stdioItem) => handleNativeStream({\n stdioItem,\n isStdioArray,\n fdNumber,\n direction,\n isSync\n }));\n const normalizedStdioItems = normalizeTransforms(stdioItems, optionName, direction, options);\n const objectMode = getFdObjectMode(normalizedStdioItems, direction);\n validateFileObjectMode(normalizedStdioItems, objectMode);\n return { direction, objectMode, stdioItems: normalizedStdioItems };\n};\nvar initializeStdioItems = ({ stdioOption, fdNumber, options, optionName }) => {\n const values = Array.isArray(stdioOption) ? stdioOption : [stdioOption];\n const initialStdioItems = [\n ...values.map((value) => initializeStdioItem(value, optionName)),\n ...handleInputOptions(options, fdNumber)\n ];\n const stdioItems = filterDuplicates(initialStdioItems);\n const isStdioArray = stdioItems.length > 1;\n validateStdioArray(stdioItems, isStdioArray, optionName);\n validateStreams(stdioItems);\n return { stdioItems, isStdioArray };\n};\nvar initializeStdioItem = (value, optionName) => ({\n type: getStdioItemType(value, optionName),\n value,\n optionName\n});\nvar validateStdioArray = (stdioItems, isStdioArray, optionName) => {\n if (stdioItems.length === 0) {\n throw new TypeError(`The \\`${optionName}\\` option must not be an empty array.`);\n }\n if (!isStdioArray) {\n return;\n }\n for (const { value, optionName: optionName2 } of stdioItems) {\n if (INVALID_STDIO_ARRAY_OPTIONS.has(value)) {\n throw new Error(`The \\`${optionName2}\\` option must not include \\`${value}\\`.`);\n }\n }\n};\nvar INVALID_STDIO_ARRAY_OPTIONS = new Set([\"ignore\", \"ipc\"]);\nvar validateStreams = (stdioItems) => {\n for (const stdioItem of stdioItems) {\n validateFileStdio(stdioItem);\n }\n};\nvar validateFileStdio = ({ type, value, optionName }) => {\n if (isRegularUrl(value)) {\n throw new TypeError(`The \\`${optionName}: URL\\` option must use the \\`file:\\` scheme.\nFor example, you can use the \\`pathToFileURL()\\` method of the \\`url\\` core module.`);\n }\n if (isUnknownStdioString(type, value)) {\n throw new TypeError(`The \\`${optionName}: { file: '...' }\\` option must be used instead of \\`${optionName}: '...'\\`.`);\n }\n};\nvar validateFileObjectMode = (stdioItems, objectMode) => {\n if (!objectMode) {\n return;\n }\n const fileStdioItem = stdioItems.find(({ type }) => FILE_TYPES.has(type));\n if (fileStdioItem !== undefined) {\n throw new TypeError(`The \\`${fileStdioItem.optionName}\\` option cannot use both files and transforms in objectMode.`);\n }\n};\nvar getFinalFileDescriptors = ({ initialFileDescriptors, addProperties, options, isSync }) => {\n const fileDescriptors = [];\n try {\n for (const fileDescriptor of initialFileDescriptors) {\n fileDescriptors.push(getFinalFileDescriptor({\n fileDescriptor,\n fileDescriptors,\n addProperties,\n options,\n isSync\n }));\n }\n return fileDescriptors;\n } catch (error) {\n cleanupCustomStreams(fileDescriptors);\n throw error;\n }\n};\nvar getFinalFileDescriptor = ({\n fileDescriptor: { direction, objectMode, stdioItems },\n fileDescriptors,\n addProperties,\n options,\n isSync\n}) => {\n const finalStdioItems = stdioItems.map((stdioItem) => addStreamProperties({\n stdioItem,\n addProperties,\n direction,\n options,\n fileDescriptors,\n isSync\n }));\n return { direction, objectMode, stdioItems: finalStdioItems };\n};\nvar addStreamProperties = ({ stdioItem, addProperties, direction, options, fileDescriptors, isSync }) => {\n const duplicateStream = getDuplicateStream({\n stdioItem,\n direction,\n fileDescriptors,\n isSync\n });\n if (duplicateStream !== undefined) {\n return { ...stdioItem, stream: duplicateStream };\n }\n return {\n ...stdioItem,\n ...addProperties[direction][stdioItem.type](stdioItem, options)\n };\n};\nvar cleanupCustomStreams = (fileDescriptors) => {\n for (const { stdioItems } of fileDescriptors) {\n for (const { stream } of stdioItems) {\n if (stream !== undefined && !isStandardStream(stream)) {\n stream.destroy();\n }\n }\n }\n};\nvar forwardStdio = (stdioItems) => {\n if (stdioItems.length > 1) {\n return stdioItems.some(({ value: value2 }) => value2 === \"overlapped\") ? \"overlapped\" : \"pipe\";\n }\n const [{ type, value }] = stdioItems;\n return type === \"native\" ? value : \"pipe\";\n};\nvar handleStdioSync = (options, verboseInfo) => handleStdio(addPropertiesSync, options, verboseInfo, true);\nvar forbiddenIfSync = ({ type, optionName }) => {\n throwInvalidSyncValue(optionName, TYPE_TO_MESSAGE[type]);\n};\nvar forbiddenNativeIfSync = ({ optionName, value }) => {\n if (value === \"ipc\" || value === \"overlapped\") {\n throwInvalidSyncValue(optionName, `\"${value}\"`);\n }\n return {};\n};\nvar throwInvalidSyncValue = (optionName, value) => {\n throw new TypeError(`The \\`${optionName}\\` option cannot be ${value} with synchronous methods.`);\n};\nvar addProperties = {\n generator() {},\n asyncGenerator: forbiddenIfSync,\n webStream: forbiddenIfSync,\n nodeStream: forbiddenIfSync,\n webTransform: forbiddenIfSync,\n duplex: forbiddenIfSync,\n asyncIterable: forbiddenIfSync,\n native: forbiddenNativeIfSync\n};\nvar addPropertiesSync = {\n input: {\n ...addProperties,\n fileUrl: ({ value }) => ({ contents: [bufferToUint8Array(readFileSync2(value))] }),\n filePath: ({ value: { file } }) => ({ contents: [bufferToUint8Array(readFileSync2(file))] }),\n fileNumber: forbiddenIfSync,\n iterable: ({ value }) => ({ contents: [...value] }),\n string: ({ value }) => ({ contents: [value] }),\n uint8Array: ({ value }) => ({ contents: [value] })\n },\n output: {\n ...addProperties,\n fileUrl: ({ value }) => ({ path: value }),\n filePath: ({ value: { file, append } }) => ({ path: file, append }),\n fileNumber: ({ value }) => ({ path: value }),\n iterable: forbiddenIfSync,\n string: forbiddenIfSync,\n uint8Array: forbiddenIfSync\n }\n};\nvar stripNewline = (value, { stripFinalNewline: stripFinalNewline2 }, fdNumber) => getStripFinalNewline(stripFinalNewline2, fdNumber) && value !== undefined && !Array.isArray(value) ? stripFinalNewline(value) : value;\nvar getStripFinalNewline = (stripFinalNewline2, fdNumber) => fdNumber === \"all\" ? stripFinalNewline2[1] || stripFinalNewline2[2] : stripFinalNewline2[fdNumber];\nvar getSplitLinesGenerator = (binary, preserveNewlines, skipped, state) => binary || skipped ? undefined : initializeSplitLines(preserveNewlines, state);\nvar splitLinesSync = (chunk, preserveNewlines, objectMode) => objectMode ? chunk.flatMap((item) => splitLinesItemSync(item, preserveNewlines)) : splitLinesItemSync(chunk, preserveNewlines);\nvar splitLinesItemSync = (chunk, preserveNewlines) => {\n const { transform, final } = initializeSplitLines(preserveNewlines, {});\n return [...transform(chunk), ...final()];\n};\nvar initializeSplitLines = (preserveNewlines, state) => {\n state.previousChunks = \"\";\n return {\n transform: splitGenerator.bind(undefined, state, preserveNewlines),\n final: linesFinal.bind(undefined, state)\n };\n};\nvar splitGenerator = function* (state, preserveNewlines, chunk) {\n if (typeof chunk !== \"string\") {\n yield chunk;\n return;\n }\n let { previousChunks } = state;\n let start = -1;\n for (let end = 0;end < chunk.length; end += 1) {\n if (chunk[end] === `\n`) {\n const newlineLength = getNewlineLength(chunk, end, preserveNewlines, state);\n let line = chunk.slice(start + 1, end + 1 - newlineLength);\n if (previousChunks.length > 0) {\n line = concatString(previousChunks, line);\n previousChunks = \"\";\n }\n yield line;\n start = end;\n }\n }\n if (start !== chunk.length - 1) {\n previousChunks = concatString(previousChunks, chunk.slice(start + 1));\n }\n state.previousChunks = previousChunks;\n};\nvar getNewlineLength = (chunk, end, preserveNewlines, state) => {\n if (preserveNewlines) {\n return 0;\n }\n state.isWindowsNewline = end !== 0 && chunk[end - 1] === \"\\r\";\n return state.isWindowsNewline ? 2 : 1;\n};\nvar linesFinal = function* ({ previousChunks }) {\n if (previousChunks.length > 0) {\n yield previousChunks;\n }\n};\nvar getAppendNewlineGenerator = ({ binary, preserveNewlines, readableObjectMode, state }) => binary || preserveNewlines || readableObjectMode ? undefined : { transform: appendNewlineGenerator.bind(undefined, state) };\nvar appendNewlineGenerator = function* ({ isWindowsNewline = false }, chunk) {\n const { unixNewline, windowsNewline, LF: LF2, concatBytes } = typeof chunk === \"string\" ? linesStringInfo : linesUint8ArrayInfo;\n if (chunk.at(-1) === LF2) {\n yield chunk;\n return;\n }\n const newline = isWindowsNewline ? windowsNewline : unixNewline;\n yield concatBytes(chunk, newline);\n};\nvar concatString = (firstChunk, secondChunk) => `${firstChunk}${secondChunk}`;\nvar linesStringInfo = {\n windowsNewline: `\\r\n`,\n unixNewline: `\n`,\n LF: `\n`,\n concatBytes: concatString\n};\nvar concatUint8Array = (firstChunk, secondChunk) => {\n const chunk = new Uint8Array(firstChunk.length + secondChunk.length);\n chunk.set(firstChunk, 0);\n chunk.set(secondChunk, firstChunk.length);\n return chunk;\n};\nvar linesUint8ArrayInfo = {\n windowsNewline: new Uint8Array([13, 10]),\n unixNewline: new Uint8Array([10]),\n LF: 10,\n concatBytes: concatUint8Array\n};\nvar getValidateTransformInput = (writableObjectMode, optionName) => writableObjectMode ? undefined : validateStringTransformInput.bind(undefined, optionName);\nvar validateStringTransformInput = function* (optionName, chunk) {\n if (typeof chunk !== \"string\" && !isUint8Array(chunk) && !Buffer2.isBuffer(chunk)) {\n throw new TypeError(`The \\`${optionName}\\` option's transform must use \"objectMode: true\" to receive as input: ${typeof chunk}.`);\n }\n yield chunk;\n};\nvar getValidateTransformReturn = (readableObjectMode, optionName) => readableObjectMode ? validateObjectTransformReturn.bind(undefined, optionName) : validateStringTransformReturn.bind(undefined, optionName);\nvar validateObjectTransformReturn = function* (optionName, chunk) {\n validateEmptyReturn(optionName, chunk);\n yield chunk;\n};\nvar validateStringTransformReturn = function* (optionName, chunk) {\n validateEmptyReturn(optionName, chunk);\n if (typeof chunk !== \"string\" && !isUint8Array(chunk)) {\n throw new TypeError(`The \\`${optionName}\\` option's function must yield a string or an Uint8Array, not ${typeof chunk}.`);\n }\n yield chunk;\n};\nvar validateEmptyReturn = (optionName, chunk) => {\n if (chunk === null || chunk === undefined) {\n throw new TypeError(`The \\`${optionName}\\` option's function must not call \\`yield ${chunk}\\`.\nInstead, \\`yield\\` should either be called with a value, or not be called at all. For example:\n if (condition) { yield value; }`);\n }\n};\nvar getEncodingTransformGenerator = (binary, encoding, skipped) => {\n if (skipped) {\n return;\n }\n if (binary) {\n return { transform: encodingUint8ArrayGenerator.bind(undefined, new TextEncoder) };\n }\n const stringDecoder = new StringDecoder2(encoding);\n return {\n transform: encodingStringGenerator.bind(undefined, stringDecoder),\n final: encodingStringFinal.bind(undefined, stringDecoder)\n };\n};\nvar encodingUint8ArrayGenerator = function* (textEncoder3, chunk) {\n if (Buffer3.isBuffer(chunk)) {\n yield bufferToUint8Array(chunk);\n } else if (typeof chunk === \"string\") {\n yield textEncoder3.encode(chunk);\n } else {\n yield chunk;\n }\n};\nvar encodingStringGenerator = function* (stringDecoder, chunk) {\n yield isUint8Array(chunk) ? stringDecoder.write(chunk) : chunk;\n};\nvar encodingStringFinal = function* (stringDecoder) {\n const lastChunk = stringDecoder.end();\n if (lastChunk !== \"\") {\n yield lastChunk;\n }\n};\nvar pushChunks = callbackify(async (getChunks, state, getChunksArguments, transformStream) => {\n state.currentIterable = getChunks(...getChunksArguments);\n try {\n for await (const chunk of state.currentIterable) {\n transformStream.push(chunk);\n }\n } finally {\n delete state.currentIterable;\n }\n});\nvar transformChunk = async function* (chunk, generators, index) {\n if (index === generators.length) {\n yield chunk;\n return;\n }\n const { transform = identityGenerator } = generators[index];\n for await (const transformedChunk of transform(chunk)) {\n yield* transformChunk(transformedChunk, generators, index + 1);\n }\n};\nvar finalChunks = async function* (generators) {\n for (const [index, { final }] of Object.entries(generators)) {\n yield* generatorFinalChunks(final, Number(index), generators);\n }\n};\nvar generatorFinalChunks = async function* (final, index, generators) {\n if (final === undefined) {\n return;\n }\n for await (const finalChunk of final()) {\n yield* transformChunk(finalChunk, generators, index + 1);\n }\n};\nvar destroyTransform = callbackify(async ({ currentIterable }, error) => {\n if (currentIterable !== undefined) {\n await (error ? currentIterable.throw(error) : currentIterable.return());\n return;\n }\n if (error) {\n throw error;\n }\n});\nvar identityGenerator = function* (chunk) {\n yield chunk;\n};\nvar pushChunksSync = (getChunksSync, getChunksArguments, transformStream, done) => {\n try {\n for (const chunk of getChunksSync(...getChunksArguments)) {\n transformStream.push(chunk);\n }\n done();\n } catch (error) {\n done(error);\n }\n};\nvar runTransformSync = (generators, chunks) => [\n ...chunks.flatMap((chunk) => [...transformChunkSync(chunk, generators, 0)]),\n ...finalChunksSync(generators)\n];\nvar transformChunkSync = function* (chunk, generators, index) {\n if (index === generators.length) {\n yield chunk;\n return;\n }\n const { transform = identityGenerator2 } = generators[index];\n for (const transformedChunk of transform(chunk)) {\n yield* transformChunkSync(transformedChunk, generators, index + 1);\n }\n};\nvar finalChunksSync = function* (generators) {\n for (const [index, { final }] of Object.entries(generators)) {\n yield* generatorFinalChunksSync(final, Number(index), generators);\n }\n};\nvar generatorFinalChunksSync = function* (final, index, generators) {\n if (final === undefined) {\n return;\n }\n for (const finalChunk of final()) {\n yield* transformChunkSync(finalChunk, generators, index + 1);\n }\n};\nvar identityGenerator2 = function* (chunk) {\n yield chunk;\n};\nvar generatorToStream = ({\n value,\n value: { transform, final, writableObjectMode, readableObjectMode },\n optionName\n}, { encoding }) => {\n const state = {};\n const generators = addInternalGenerators(value, encoding, optionName);\n const transformAsync = isAsyncGenerator(transform);\n const finalAsync = isAsyncGenerator(final);\n const transformMethod = transformAsync ? pushChunks.bind(undefined, transformChunk, state) : pushChunksSync.bind(undefined, transformChunkSync);\n const finalMethod = transformAsync || finalAsync ? pushChunks.bind(undefined, finalChunks, state) : pushChunksSync.bind(undefined, finalChunksSync);\n const destroyMethod = transformAsync || finalAsync ? destroyTransform.bind(undefined, state) : undefined;\n const stream = new Transform({\n writableObjectMode,\n writableHighWaterMark: getDefaultHighWaterMark(writableObjectMode),\n readableObjectMode,\n readableHighWaterMark: getDefaultHighWaterMark(readableObjectMode),\n transform(chunk, encoding2, done) {\n transformMethod([chunk, generators, 0], this, done);\n },\n flush(done) {\n finalMethod([generators], this, done);\n },\n destroy: destroyMethod\n });\n return { stream };\n};\nvar runGeneratorsSync = (chunks, stdioItems, encoding, isInput) => {\n const generators = stdioItems.filter(({ type }) => type === \"generator\");\n const reversedGenerators = isInput ? generators.reverse() : generators;\n for (const { value, optionName } of reversedGenerators) {\n const generators2 = addInternalGenerators(value, encoding, optionName);\n chunks = runTransformSync(generators2, chunks);\n }\n return chunks;\n};\nvar addInternalGenerators = ({ transform, final, binary, writableObjectMode, readableObjectMode, preserveNewlines }, encoding, optionName) => {\n const state = {};\n return [\n { transform: getValidateTransformInput(writableObjectMode, optionName) },\n getEncodingTransformGenerator(binary, encoding, writableObjectMode),\n getSplitLinesGenerator(binary, preserveNewlines, writableObjectMode, state),\n { transform, final },\n { transform: getValidateTransformReturn(readableObjectMode, optionName) },\n getAppendNewlineGenerator({\n binary,\n preserveNewlines,\n readableObjectMode,\n state\n })\n ].filter(Boolean);\n};\nvar addInputOptionsSync = (fileDescriptors, options) => {\n for (const fdNumber of getInputFdNumbers(fileDescriptors)) {\n addInputOptionSync(fileDescriptors, fdNumber, options);\n }\n};\nvar getInputFdNumbers = (fileDescriptors) => new Set(Object.entries(fileDescriptors).filter(([, { direction }]) => direction === \"input\").map(([fdNumber]) => Number(fdNumber)));\nvar addInputOptionSync = (fileDescriptors, fdNumber, options) => {\n const { stdioItems } = fileDescriptors[fdNumber];\n const allStdioItems = stdioItems.filter(({ contents }) => contents !== undefined);\n if (allStdioItems.length === 0) {\n return;\n }\n if (fdNumber !== 0) {\n const [{ type, optionName }] = allStdioItems;\n throw new TypeError(`Only the \\`stdin\\` option, not \\`${optionName}\\`, can be ${TYPE_TO_MESSAGE[type]} with synchronous methods.`);\n }\n const allContents = allStdioItems.map(({ contents }) => contents);\n const transformedContents = allContents.map((contents) => applySingleInputGeneratorsSync(contents, stdioItems));\n options.input = joinToUint8Array(transformedContents);\n};\nvar applySingleInputGeneratorsSync = (contents, stdioItems) => {\n const newContents = runGeneratorsSync(contents, stdioItems, \"utf8\", true);\n validateSerializable(newContents);\n return joinToUint8Array(newContents);\n};\nvar validateSerializable = (newContents) => {\n const invalidItem = newContents.find((item) => typeof item !== \"string\" && !isUint8Array(item));\n if (invalidItem !== undefined) {\n throw new TypeError(`The \\`stdin\\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${invalidItem}.`);\n }\n};\nvar shouldLogOutput = ({ stdioItems, encoding, verboseInfo, fdNumber }) => fdNumber !== \"all\" && isFullVerbose(verboseInfo, fdNumber) && !BINARY_ENCODINGS.has(encoding) && fdUsesVerbose(fdNumber) && (stdioItems.some(({ type, value }) => type === \"native\" && PIPED_STDIO_VALUES.has(value)) || stdioItems.every(({ type }) => TRANSFORM_TYPES.has(type)));\nvar fdUsesVerbose = (fdNumber) => fdNumber === 1 || fdNumber === 2;\nvar PIPED_STDIO_VALUES = new Set([\"pipe\", \"overlapped\"]);\nvar logLines = async (linesIterable, stream, fdNumber, verboseInfo) => {\n for await (const line of linesIterable) {\n if (!isPipingStream(stream)) {\n logLine(line, fdNumber, verboseInfo);\n }\n }\n};\nvar logLinesSync = (linesArray, fdNumber, verboseInfo) => {\n for (const line of linesArray) {\n logLine(line, fdNumber, verboseInfo);\n }\n};\nvar isPipingStream = (stream) => stream._readableState.pipes.length > 0;\nvar logLine = (line, fdNumber, verboseInfo) => {\n const verboseMessage = serializeVerboseMessage(line);\n verboseLog({\n type: \"output\",\n verboseMessage,\n fdNumber,\n verboseInfo\n });\n};\nvar transformOutputSync = ({ fileDescriptors, syncResult: { output }, options, isMaxBuffer, verboseInfo }) => {\n if (output === null) {\n return { output: Array.from({ length: 3 }) };\n }\n const state = {};\n const outputFiles = new Set([]);\n const transformedOutput = output.map((result, fdNumber) => transformOutputResultSync({\n result,\n fileDescriptors,\n fdNumber,\n state,\n outputFiles,\n isMaxBuffer,\n verboseInfo\n }, options));\n return { output: transformedOutput, ...state };\n};\nvar transformOutputResultSync = ({ result, fileDescriptors, fdNumber, state, outputFiles, isMaxBuffer, verboseInfo }, { buffer, encoding, lines, stripFinalNewline: stripFinalNewline2, maxBuffer }) => {\n if (result === null) {\n return;\n }\n const truncatedResult = truncateMaxBufferSync(result, isMaxBuffer, maxBuffer);\n const uint8ArrayResult = bufferToUint8Array(truncatedResult);\n const { stdioItems, objectMode } = fileDescriptors[fdNumber];\n const chunks = runOutputGeneratorsSync([uint8ArrayResult], stdioItems, encoding, state);\n const { serializedResult, finalResult = serializedResult } = serializeChunks({\n chunks,\n objectMode,\n encoding,\n lines,\n stripFinalNewline: stripFinalNewline2,\n fdNumber\n });\n logOutputSync({\n serializedResult,\n fdNumber,\n state,\n verboseInfo,\n encoding,\n stdioItems,\n objectMode\n });\n const returnedResult = buffer[fdNumber] ? finalResult : undefined;\n try {\n if (state.error === undefined) {\n writeToFiles(serializedResult, stdioItems, outputFiles);\n }\n return returnedResult;\n } catch (error) {\n state.error = error;\n return returnedResult;\n }\n};\nvar runOutputGeneratorsSync = (chunks, stdioItems, encoding, state) => {\n try {\n return runGeneratorsSync(chunks, stdioItems, encoding, false);\n } catch (error) {\n state.error = error;\n return chunks;\n }\n};\nvar serializeChunks = ({ chunks, objectMode, encoding, lines, stripFinalNewline: stripFinalNewline2, fdNumber }) => {\n if (objectMode) {\n return { serializedResult: chunks };\n }\n if (encoding === \"buffer\") {\n return { serializedResult: joinToUint8Array(chunks) };\n }\n const serializedResult = joinToString(chunks, encoding);\n if (lines[fdNumber]) {\n return { serializedResult, finalResult: splitLinesSync(serializedResult, !stripFinalNewline2[fdNumber], objectMode) };\n }\n return { serializedResult };\n};\nvar logOutputSync = ({ serializedResult, fdNumber, state, verboseInfo, encoding, stdioItems, objectMode }) => {\n if (!shouldLogOutput({\n stdioItems,\n encoding,\n verboseInfo,\n fdNumber\n })) {\n return;\n }\n const linesArray = splitLinesSync(serializedResult, false, objectMode);\n try {\n logLinesSync(linesArray, fdNumber, verboseInfo);\n } catch (error) {\n state.error ??= error;\n }\n};\nvar writeToFiles = (serializedResult, stdioItems, outputFiles) => {\n for (const { path: path62, append } of stdioItems.filter(({ type }) => FILE_TYPES.has(type))) {\n const pathString = typeof path62 === \"string\" ? path62 : path62.toString();\n if (append || outputFiles.has(pathString)) {\n appendFileSync(path62, serializedResult);\n } else {\n outputFiles.add(pathString);\n writeFileSync(path62, serializedResult);\n }\n }\n};\nvar getAllSync = ([, stdout, stderr], options) => {\n if (!options.all) {\n return;\n }\n if (stdout === undefined) {\n return stderr;\n }\n if (stderr === undefined) {\n return stdout;\n }\n if (Array.isArray(stdout)) {\n return Array.isArray(stderr) ? [...stdout, ...stderr] : [...stdout, stripNewline(stderr, options, \"all\")];\n }\n if (Array.isArray(stderr)) {\n return [stripNewline(stdout, options, \"all\"), ...stderr];\n }\n if (isUint8Array(stdout) && isUint8Array(stderr)) {\n return concatUint8Arrays([stdout, stderr]);\n }\n return `${stdout}${stderr}`;\n};\nvar waitForExit = async (subprocess, context) => {\n const [exitCode, signal] = await waitForExitOrError(subprocess);\n context.isForcefullyTerminated ??= false;\n return [exitCode, signal];\n};\nvar waitForExitOrError = async (subprocess) => {\n const [spawnPayload, exitPayload] = await Promise.allSettled([\n once4(subprocess, \"spawn\"),\n once4(subprocess, \"exit\")\n ]);\n if (spawnPayload.status === \"rejected\") {\n return [];\n }\n return exitPayload.status === \"rejected\" ? waitForSubprocessExit(subprocess) : exitPayload.value;\n};\nvar waitForSubprocessExit = async (subprocess) => {\n try {\n return await once4(subprocess, \"exit\");\n } catch {\n return waitForSubprocessExit(subprocess);\n }\n};\nvar waitForSuccessfulExit = async (exitPromise) => {\n const [exitCode, signal] = await exitPromise;\n if (!isSubprocessErrorExit(exitCode, signal) && isFailedExit(exitCode, signal)) {\n throw new DiscardedError;\n }\n return [exitCode, signal];\n};\nvar isSubprocessErrorExit = (exitCode, signal) => exitCode === undefined && signal === undefined;\nvar isFailedExit = (exitCode, signal) => exitCode !== 0 || signal !== null;\nvar getExitResultSync = ({ error, status: exitCode, signal, output }, { maxBuffer }) => {\n const resultError = getResultError(error, exitCode, signal);\n const timedOut = resultError?.code === \"ETIMEDOUT\";\n const isMaxBuffer = isMaxBufferSync(resultError, output, maxBuffer);\n return {\n resultError,\n exitCode,\n signal,\n timedOut,\n isMaxBuffer\n };\n};\nvar getResultError = (error, exitCode, signal) => {\n if (error !== undefined) {\n return error;\n }\n return isFailedExit(exitCode, signal) ? new DiscardedError : undefined;\n};\nvar execaCoreSync = (rawFile, rawArguments, rawOptions) => {\n const { file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors } = handleSyncArguments(rawFile, rawArguments, rawOptions);\n const result = spawnSubprocessSync({\n file,\n commandArguments,\n options,\n command,\n escapedCommand,\n verboseInfo,\n fileDescriptors,\n startTime\n });\n return handleResult(result, verboseInfo, options);\n};\nvar handleSyncArguments = (rawFile, rawArguments, rawOptions) => {\n const { command, escapedCommand, startTime, verboseInfo } = handleCommand(rawFile, rawArguments, rawOptions);\n const syncOptions = normalizeSyncOptions(rawOptions);\n const { file, commandArguments, options } = normalizeOptions(rawFile, rawArguments, syncOptions);\n validateSyncOptions(options);\n const fileDescriptors = handleStdioSync(options, verboseInfo);\n return {\n file,\n commandArguments,\n command,\n escapedCommand,\n startTime,\n verboseInfo,\n options,\n fileDescriptors\n };\n};\nvar normalizeSyncOptions = (options) => options.node && !options.ipc ? { ...options, ipc: false } : options;\nvar validateSyncOptions = ({ ipc, ipcInput, detached, cancelSignal }) => {\n if (ipcInput) {\n throwInvalidSyncOption(\"ipcInput\");\n }\n if (ipc) {\n throwInvalidSyncOption(\"ipc: true\");\n }\n if (detached) {\n throwInvalidSyncOption(\"detached: true\");\n }\n if (cancelSignal) {\n throwInvalidSyncOption(\"cancelSignal\");\n }\n};\nvar throwInvalidSyncOption = (value) => {\n throw new TypeError(`The \"${value}\" option cannot be used with synchronous methods.`);\n};\nvar spawnSubprocessSync = ({ file, commandArguments, options, command, escapedCommand, verboseInfo, fileDescriptors, startTime }) => {\n const syncResult = runSubprocessSync({\n file,\n commandArguments,\n options,\n command,\n escapedCommand,\n fileDescriptors,\n startTime\n });\n if (syncResult.failed) {\n return syncResult;\n }\n const { resultError, exitCode, signal, timedOut, isMaxBuffer } = getExitResultSync(syncResult, options);\n const { output, error = resultError } = transformOutputSync({\n fileDescriptors,\n syncResult,\n options,\n isMaxBuffer,\n verboseInfo\n });\n const stdio = output.map((stdioOutput, fdNumber) => stripNewline(stdioOutput, options, fdNumber));\n const all = stripNewline(getAllSync(output, options), options, \"all\");\n return getSyncResult({\n error,\n exitCode,\n signal,\n timedOut,\n isMaxBuffer,\n stdio,\n all,\n options,\n command,\n escapedCommand,\n startTime\n });\n};\nvar runSubprocessSync = ({ file, commandArguments, options, command, escapedCommand, fileDescriptors, startTime }) => {\n try {\n addInputOptionsSync(fileDescriptors, options);\n const normalizedOptions = normalizeSpawnSyncOptions(options);\n return spawnSync(...concatenateShell(file, commandArguments, normalizedOptions));\n } catch (error) {\n return makeEarlyError({\n error,\n command,\n escapedCommand,\n fileDescriptors,\n options,\n startTime,\n isSync: true\n });\n }\n};\nvar normalizeSpawnSyncOptions = ({ encoding, maxBuffer, ...options }) => ({ ...options, encoding: \"buffer\", maxBuffer: getMaxBufferSync(maxBuffer) });\nvar getSyncResult = ({ error, exitCode, signal, timedOut, isMaxBuffer, stdio, all, options, command, escapedCommand, startTime }) => error === undefined ? makeSuccessResult({\n command,\n escapedCommand,\n stdio,\n all,\n ipcOutput: [],\n options,\n startTime\n}) : makeError({\n error,\n command,\n escapedCommand,\n timedOut,\n isCanceled: false,\n isGracefullyCanceled: false,\n isMaxBuffer,\n isForcefullyTerminated: false,\n exitCode,\n signal,\n stdio,\n all,\n ipcOutput: [],\n options,\n startTime,\n isSync: true\n});\nvar getOneMessage = ({ anyProcess, channel, isSubprocess, ipc }, { reference = true, filter } = {}) => {\n validateIpcMethod({\n methodName: \"getOneMessage\",\n isSubprocess,\n ipc,\n isConnected: isConnected(anyProcess)\n });\n return getOneMessageAsync({\n anyProcess,\n channel,\n isSubprocess,\n filter,\n reference\n });\n};\nvar getOneMessageAsync = async ({ anyProcess, channel, isSubprocess, filter, reference }) => {\n addReference(channel, reference);\n const ipcEmitter = getIpcEmitter(anyProcess, channel, isSubprocess);\n const controller = new AbortController;\n try {\n return await Promise.race([\n getMessage(ipcEmitter, filter, controller),\n throwOnDisconnect2(ipcEmitter, isSubprocess, controller),\n throwOnStrictError(ipcEmitter, isSubprocess, controller)\n ]);\n } catch (error) {\n disconnect(anyProcess);\n throw error;\n } finally {\n controller.abort();\n removeReference(channel, reference);\n }\n};\nvar getMessage = async (ipcEmitter, filter, { signal }) => {\n if (filter === undefined) {\n const [message] = await once5(ipcEmitter, \"message\", { signal });\n return message;\n }\n for await (const [message] of on2(ipcEmitter, \"message\", { signal })) {\n if (filter(message)) {\n return message;\n }\n }\n};\nvar throwOnDisconnect2 = async (ipcEmitter, isSubprocess, { signal }) => {\n await once5(ipcEmitter, \"disconnect\", { signal });\n throwOnEarlyDisconnect(isSubprocess);\n};\nvar throwOnStrictError = async (ipcEmitter, isSubprocess, { signal }) => {\n const [error] = await once5(ipcEmitter, \"strict:error\", { signal });\n throw getStrictResponseError(error, isSubprocess);\n};\nvar getEachMessage = ({ anyProcess, channel, isSubprocess, ipc }, { reference = true } = {}) => loopOnMessages({\n anyProcess,\n channel,\n isSubprocess,\n ipc,\n shouldAwait: !isSubprocess,\n reference\n});\nvar loopOnMessages = ({ anyProcess, channel, isSubprocess, ipc, shouldAwait, reference }) => {\n validateIpcMethod({\n methodName: \"getEachMessage\",\n isSubprocess,\n ipc,\n isConnected: isConnected(anyProcess)\n });\n addReference(channel, reference);\n const ipcEmitter = getIpcEmitter(anyProcess, channel, isSubprocess);\n const controller = new AbortController;\n const state = {};\n stopOnDisconnect(anyProcess, ipcEmitter, controller);\n abortOnStrictError({\n ipcEmitter,\n isSubprocess,\n controller,\n state\n });\n return iterateOnMessages({\n anyProcess,\n channel,\n ipcEmitter,\n isSubprocess,\n shouldAwait,\n controller,\n state,\n reference\n });\n};\nvar stopOnDisconnect = async (anyProcess, ipcEmitter, controller) => {\n try {\n await once6(ipcEmitter, \"disconnect\", { signal: controller.signal });\n controller.abort();\n } catch {}\n};\nvar abortOnStrictError = async ({ ipcEmitter, isSubprocess, controller, state }) => {\n try {\n const [error] = await once6(ipcEmitter, \"strict:error\", { signal: controller.signal });\n state.error = getStrictResponseError(error, isSubprocess);\n controller.abort();\n } catch {}\n};\nvar iterateOnMessages = async function* ({ anyProcess, channel, ipcEmitter, isSubprocess, shouldAwait, controller, state, reference }) {\n try {\n for await (const [message] of on3(ipcEmitter, \"message\", { signal: controller.signal })) {\n throwIfStrictError(state);\n yield message;\n }\n } catch {\n throwIfStrictError(state);\n } finally {\n controller.abort();\n removeReference(channel, reference);\n if (!isSubprocess) {\n disconnect(anyProcess);\n }\n if (shouldAwait) {\n await anyProcess;\n }\n }\n};\nvar throwIfStrictError = ({ error }) => {\n if (error) {\n throw error;\n }\n};\nvar addIpcMethods = (subprocess, { ipc }) => {\n Object.assign(subprocess, getIpcMethods(subprocess, false, ipc));\n};\nvar getIpcExport = () => {\n const anyProcess = process8;\n const isSubprocess = true;\n const ipc = process8.channel !== undefined;\n return {\n ...getIpcMethods(anyProcess, isSubprocess, ipc),\n getCancelSignal: getCancelSignal.bind(undefined, {\n anyProcess,\n channel: anyProcess.channel,\n isSubprocess,\n ipc\n })\n };\n};\nvar getIpcMethods = (anyProcess, isSubprocess, ipc) => ({\n sendMessage: sendMessage.bind(undefined, {\n anyProcess,\n channel: anyProcess.channel,\n isSubprocess,\n ipc\n }),\n getOneMessage: getOneMessage.bind(undefined, {\n anyProcess,\n channel: anyProcess.channel,\n isSubprocess,\n ipc\n }),\n getEachMessage: getEachMessage.bind(undefined, {\n anyProcess,\n channel: anyProcess.channel,\n isSubprocess,\n ipc\n })\n});\nvar handleEarlyError = ({ error, command, escapedCommand, fileDescriptors, options, startTime, verboseInfo }) => {\n cleanupCustomStreams(fileDescriptors);\n const subprocess = new ChildProcess2;\n createDummyStreams(subprocess, fileDescriptors);\n Object.assign(subprocess, { readable, writable, duplex });\n const earlyError = makeEarlyError({\n error,\n command,\n escapedCommand,\n fileDescriptors,\n options,\n startTime,\n isSync: false\n });\n const promise = handleDummyPromise(earlyError, verboseInfo, options);\n return { subprocess, promise };\n};\nvar createDummyStreams = (subprocess, fileDescriptors) => {\n const stdin = createDummyStream();\n const stdout = createDummyStream();\n const stderr = createDummyStream();\n const extraStdio = Array.from({ length: fileDescriptors.length - 3 }, createDummyStream);\n const all = createDummyStream();\n const stdio = [stdin, stdout, stderr, ...extraStdio];\n Object.assign(subprocess, {\n stdin,\n stdout,\n stderr,\n all,\n stdio\n });\n};\nvar createDummyStream = () => {\n const stream = new PassThrough;\n stream.end();\n return stream;\n};\nvar readable = () => new Readable({ read() {} });\nvar writable = () => new Writable({ write() {} });\nvar duplex = () => new Duplex({ read() {}, write() {} });\nvar handleDummyPromise = async (error, verboseInfo, options) => handleResult(error, verboseInfo, options);\nvar handleStdioAsync = (options, verboseInfo) => handleStdio(addPropertiesAsync, options, verboseInfo, false);\nvar forbiddenIfAsync = ({ type, optionName }) => {\n throw new TypeError(`The \\`${optionName}\\` option cannot be ${TYPE_TO_MESSAGE[type]}.`);\n};\nvar addProperties2 = {\n fileNumber: forbiddenIfAsync,\n generator: generatorToStream,\n asyncGenerator: generatorToStream,\n nodeStream: ({ value }) => ({ stream: value }),\n webTransform({ value: { transform, writableObjectMode, readableObjectMode } }) {\n const objectMode = writableObjectMode || readableObjectMode;\n const stream = Duplex2.fromWeb(transform, { objectMode });\n return { stream };\n },\n duplex: ({ value: { transform } }) => ({ stream: transform }),\n native() {}\n};\nvar addPropertiesAsync = {\n input: {\n ...addProperties2,\n fileUrl: ({ value }) => ({ stream: createReadStream(value) }),\n filePath: ({ value: { file } }) => ({ stream: createReadStream(file) }),\n webStream: ({ value }) => ({ stream: Readable2.fromWeb(value) }),\n iterable: ({ value }) => ({ stream: Readable2.from(value) }),\n asyncIterable: ({ value }) => ({ stream: Readable2.from(value) }),\n string: ({ value }) => ({ stream: Readable2.from(value) }),\n uint8Array: ({ value }) => ({ stream: Readable2.from(Buffer4.from(value)) })\n },\n output: {\n ...addProperties2,\n fileUrl: ({ value }) => ({ stream: createWriteStream(value) }),\n filePath: ({ value: { file, append } }) => ({ stream: createWriteStream(file, append ? { flags: \"a\" } : {}) }),\n webStream: ({ value }) => ({ stream: Writable2.fromWeb(value) }),\n iterable: forbiddenIfAsync,\n asyncIterable: forbiddenIfAsync,\n string: forbiddenIfAsync,\n uint8Array: forbiddenIfAsync\n }\n};\nfunction mergeStreams(streams) {\n if (!Array.isArray(streams)) {\n throw new TypeError(`Expected an array, got \\`${typeof streams}\\`.`);\n }\n for (const stream of streams) {\n validateStream(stream);\n }\n const objectMode = streams.some(({ readableObjectMode }) => readableObjectMode);\n const highWaterMark = getHighWaterMark(streams, objectMode);\n const passThroughStream = new MergedStream({\n objectMode,\n writableHighWaterMark: highWaterMark,\n readableHighWaterMark: highWaterMark\n });\n for (const stream of streams) {\n passThroughStream.add(stream);\n }\n return passThroughStream;\n}\nvar getHighWaterMark = (streams, objectMode) => {\n if (streams.length === 0) {\n return getDefaultHighWaterMark2(objectMode);\n }\n const highWaterMarks = streams.filter(({ readableObjectMode }) => readableObjectMode === objectMode).map(({ readableHighWaterMark }) => readableHighWaterMark);\n return Math.max(...highWaterMarks);\n};\n\nclass MergedStream extends PassThroughStream {\n #streams = new Set([]);\n #ended = new Set([]);\n #aborted = new Set([]);\n #onFinished;\n #unpipeEvent = Symbol(\"unpipe\");\n #streamPromises = new WeakMap;\n add(stream) {\n validateStream(stream);\n if (this.#streams.has(stream)) {\n return;\n }\n this.#streams.add(stream);\n this.#onFinished ??= onMergedStreamFinished(this, this.#streams, this.#unpipeEvent);\n const streamPromise = endWhenStreamsDone({\n passThroughStream: this,\n stream,\n streams: this.#streams,\n ended: this.#ended,\n aborted: this.#aborted,\n onFinished: this.#onFinished,\n unpipeEvent: this.#unpipeEvent\n });\n this.#streamPromises.set(stream, streamPromise);\n stream.pipe(this, { end: false });\n }\n async remove(stream) {\n validateStream(stream);\n if (!this.#streams.has(stream)) {\n return false;\n }\n const streamPromise = this.#streamPromises.get(stream);\n if (streamPromise === undefined) {\n return false;\n }\n this.#streamPromises.delete(stream);\n stream.unpipe(this);\n await streamPromise;\n return true;\n }\n}\nvar onMergedStreamFinished = async (passThroughStream, streams, unpipeEvent) => {\n updateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_COUNT);\n const controller = new AbortController;\n try {\n await Promise.race([\n onMergedStreamEnd(passThroughStream, controller),\n onInputStreamsUnpipe(passThroughStream, streams, unpipeEvent, controller)\n ]);\n } finally {\n controller.abort();\n updateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_COUNT);\n }\n};\nvar onMergedStreamEnd = async (passThroughStream, { signal }) => {\n try {\n await finished2(passThroughStream, { signal, cleanup: true });\n } catch (error) {\n errorOrAbortStream(passThroughStream, error);\n throw error;\n }\n};\nvar onInputStreamsUnpipe = async (passThroughStream, streams, unpipeEvent, { signal }) => {\n for await (const [unpipedStream] of on4(passThroughStream, \"unpipe\", { signal })) {\n if (streams.has(unpipedStream)) {\n unpipedStream.emit(unpipeEvent);\n }\n }\n};\nvar validateStream = (stream) => {\n if (typeof stream?.pipe !== \"function\") {\n throw new TypeError(`Expected a readable stream, got: \\`${typeof stream}\\`.`);\n }\n};\nvar endWhenStreamsDone = async ({ passThroughStream, stream, streams, ended, aborted: aborted2, onFinished, unpipeEvent }) => {\n updateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_PER_STREAM);\n const controller = new AbortController;\n try {\n await Promise.race([\n afterMergedStreamFinished(onFinished, stream, controller),\n onInputStreamEnd({\n passThroughStream,\n stream,\n streams,\n ended,\n aborted: aborted2,\n controller\n }),\n onInputStreamUnpipe({\n stream,\n streams,\n ended,\n aborted: aborted2,\n unpipeEvent,\n controller\n })\n ]);\n } finally {\n controller.abort();\n updateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_PER_STREAM);\n }\n if (streams.size > 0 && streams.size === ended.size + aborted2.size) {\n if (ended.size === 0 && aborted2.size > 0) {\n abortStream(passThroughStream);\n } else {\n endStream(passThroughStream);\n }\n }\n};\nvar afterMergedStreamFinished = async (onFinished, stream, { signal }) => {\n try {\n await onFinished;\n if (!signal.aborted) {\n abortStream(stream);\n }\n } catch (error) {\n if (!signal.aborted) {\n errorOrAbortStream(stream, error);\n }\n }\n};\nvar onInputStreamEnd = async ({ passThroughStream, stream, streams, ended, aborted: aborted2, controller: { signal } }) => {\n try {\n await finished2(stream, {\n signal,\n cleanup: true,\n readable: true,\n writable: false\n });\n if (streams.has(stream)) {\n ended.add(stream);\n }\n } catch (error) {\n if (signal.aborted || !streams.has(stream)) {\n return;\n }\n if (isAbortError(error)) {\n aborted2.add(stream);\n } else {\n errorStream(passThroughStream, error);\n }\n }\n};\nvar onInputStreamUnpipe = async ({ stream, streams, ended, aborted: aborted2, unpipeEvent, controller: { signal } }) => {\n await once7(stream, unpipeEvent, { signal });\n if (!stream.readable) {\n return once7(signal, \"abort\", { signal });\n }\n streams.delete(stream);\n ended.delete(stream);\n aborted2.delete(stream);\n};\nvar endStream = (stream) => {\n if (stream.writable) {\n stream.end();\n }\n};\nvar errorOrAbortStream = (stream, error) => {\n if (isAbortError(error)) {\n abortStream(stream);\n } else {\n errorStream(stream, error);\n }\n};\nvar isAbortError = (error) => error?.code === \"ERR_STREAM_PREMATURE_CLOSE\";\nvar abortStream = (stream) => {\n if (stream.readable || stream.writable) {\n stream.destroy();\n }\n};\nvar errorStream = (stream, error) => {\n if (!stream.destroyed) {\n stream.once(\"error\", noop2);\n stream.destroy(error);\n }\n};\nvar noop2 = () => {};\nvar updateMaxListeners = (passThroughStream, increment2) => {\n const maxListeners = passThroughStream.getMaxListeners();\n if (maxListeners !== 0 && maxListeners !== Number.POSITIVE_INFINITY) {\n passThroughStream.setMaxListeners(maxListeners + increment2);\n }\n};\nvar PASSTHROUGH_LISTENERS_COUNT = 2;\nvar PASSTHROUGH_LISTENERS_PER_STREAM = 1;\nvar pipeStreams = (source, destination) => {\n source.pipe(destination);\n onSourceFinish(source, destination);\n onDestinationFinish(source, destination);\n};\nvar onSourceFinish = async (source, destination) => {\n if (isStandardStream(source) || isStandardStream(destination)) {\n return;\n }\n try {\n await finished3(source, { cleanup: true, readable: true, writable: false });\n } catch {}\n endDestinationStream(destination);\n};\nvar endDestinationStream = (destination) => {\n if (destination.writable) {\n destination.end();\n }\n};\nvar onDestinationFinish = async (source, destination) => {\n if (isStandardStream(source) || isStandardStream(destination)) {\n return;\n }\n try {\n await finished3(destination, { cleanup: true, readable: false, writable: true });\n } catch {}\n abortSourceStream(source);\n};\nvar abortSourceStream = (source) => {\n if (source.readable) {\n source.destroy();\n }\n};\nvar pipeOutputAsync = (subprocess, fileDescriptors, controller) => {\n const pipeGroups = new Map;\n for (const [fdNumber, { stdioItems, direction }] of Object.entries(fileDescriptors)) {\n for (const { stream } of stdioItems.filter(({ type }) => TRANSFORM_TYPES.has(type))) {\n pipeTransform(subprocess, stream, direction, fdNumber);\n }\n for (const { stream } of stdioItems.filter(({ type }) => !TRANSFORM_TYPES.has(type))) {\n pipeStdioItem({\n subprocess,\n stream,\n direction,\n fdNumber,\n pipeGroups,\n controller\n });\n }\n }\n for (const [outputStream, inputStreams] of pipeGroups.entries()) {\n const inputStream = inputStreams.length === 1 ? inputStreams[0] : mergeStreams(inputStreams);\n pipeStreams(inputStream, outputStream);\n }\n};\nvar pipeTransform = (subprocess, stream, direction, fdNumber) => {\n if (direction === \"output\") {\n pipeStreams(subprocess.stdio[fdNumber], stream);\n } else {\n pipeStreams(stream, subprocess.stdio[fdNumber]);\n }\n const streamProperty = SUBPROCESS_STREAM_PROPERTIES[fdNumber];\n if (streamProperty !== undefined) {\n subprocess[streamProperty] = stream;\n }\n subprocess.stdio[fdNumber] = stream;\n};\nvar SUBPROCESS_STREAM_PROPERTIES = [\"stdin\", \"stdout\", \"stderr\"];\nvar pipeStdioItem = ({ subprocess, stream, direction, fdNumber, pipeGroups, controller }) => {\n if (stream === undefined) {\n return;\n }\n setStandardStreamMaxListeners(stream, controller);\n const [inputStream, outputStream] = direction === \"output\" ? [stream, subprocess.stdio[fdNumber]] : [subprocess.stdio[fdNumber], stream];\n const outputStreams = pipeGroups.get(inputStream) ?? [];\n pipeGroups.set(inputStream, [...outputStreams, outputStream]);\n};\nvar setStandardStreamMaxListeners = (stream, { signal }) => {\n if (isStandardStream(stream)) {\n incrementMaxListeners(stream, MAX_LISTENERS_INCREMENT, signal);\n }\n};\nvar MAX_LISTENERS_INCREMENT = 2;\nvar signals = [];\nsignals.push(\"SIGHUP\", \"SIGINT\", \"SIGTERM\");\nif (process.platform !== \"win32\") {\n signals.push(\"SIGALRM\", \"SIGABRT\", \"SIGVTALRM\", \"SIGXCPU\", \"SIGXFSZ\", \"SIGUSR2\", \"SIGTRAP\", \"SIGSYS\", \"SIGQUIT\", \"SIGIOT\");\n}\nif (process.platform === \"linux\") {\n signals.push(\"SIGIO\", \"SIGPOLL\", \"SIGPWR\", \"SIGSTKFLT\");\n}\nvar processOk = (process9) => !!process9 && typeof process9 === \"object\" && typeof process9.removeListener === \"function\" && typeof process9.emit === \"function\" && typeof process9.reallyExit === \"function\" && typeof process9.listeners === \"function\" && typeof process9.kill === \"function\" && typeof process9.pid === \"number\" && typeof process9.on === \"function\";\nvar kExitEmitter = Symbol.for(\"signal-exit emitter\");\nvar global2 = globalThis;\nvar ObjectDefineProperty = Object.defineProperty.bind(Object);\n\nclass Emitter {\n emitted = {\n afterExit: false,\n exit: false\n };\n listeners = {\n afterExit: [],\n exit: []\n };\n count = 0;\n id = Math.random();\n constructor() {\n if (global2[kExitEmitter]) {\n return global2[kExitEmitter];\n }\n ObjectDefineProperty(global2, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false\n });\n }\n on(ev, fn) {\n this.listeners[ev].push(fn);\n }\n removeListener(ev, fn) {\n const list = this.listeners[ev];\n const i2 = list.indexOf(fn);\n if (i2 === -1) {\n return;\n }\n if (i2 === 0 && list.length === 1) {\n list.length = 0;\n } else {\n list.splice(i2, 1);\n }\n }\n emit(ev, code, signal) {\n if (this.emitted[ev]) {\n return false;\n }\n this.emitted[ev] = true;\n let ret = false;\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret;\n }\n if (ev === \"exit\") {\n ret = this.emit(\"afterExit\", code, signal) || ret;\n }\n return ret;\n }\n}\n\nclass SignalExitBase {\n}\nvar signalExitWrap = (handler) => {\n return {\n onExit(cb, opts) {\n return handler.onExit(cb, opts);\n },\n load() {\n return handler.load();\n },\n unload() {\n return handler.unload();\n }\n };\n};\n\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => {};\n }\n load() {}\n unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n #hupSig = process9.platform === \"win32\" ? \"SIGINT\" : \"SIGHUP\";\n #emitter = new Emitter;\n #process;\n #originalProcessEmit;\n #originalProcessReallyExit;\n #sigListeners = {};\n #loaded = false;\n constructor(process9) {\n super();\n this.#process = process9;\n this.#sigListeners = {};\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n const listeners = this.#process.listeners(sig);\n let { count: count2 } = this.#emitter;\n const p = process9;\n if (typeof p.__signal_exit_emitter__ === \"object\" && typeof p.__signal_exit_emitter__.count === \"number\") {\n count2 += p.__signal_exit_emitter__.count;\n }\n if (listeners.length === count2) {\n this.unload();\n const ret = this.#emitter.emit(\"exit\", null, sig);\n const s = sig === \"SIGHUP\" ? this.#hupSig : sig;\n if (!ret)\n process9.kill(process9.pid, s);\n }\n };\n }\n this.#originalProcessReallyExit = process9.reallyExit;\n this.#originalProcessEmit = process9.emit;\n }\n onExit(cb, opts) {\n if (!processOk(this.#process)) {\n return () => {};\n }\n if (this.#loaded === false) {\n this.load();\n }\n const ev = opts?.alwaysLast ? \"afterExit\" : \"exit\";\n this.#emitter.on(ev, cb);\n return () => {\n this.#emitter.removeListener(ev, cb);\n if (this.#emitter.listeners[\"exit\"].length === 0 && this.#emitter.listeners[\"afterExit\"].length === 0) {\n this.unload();\n }\n };\n }\n load() {\n if (this.#loaded) {\n return;\n }\n this.#loaded = true;\n this.#emitter.count += 1;\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig];\n if (fn)\n this.#process.on(sig, fn);\n } catch (_) {}\n }\n this.#process.emit = (ev, ...a2) => {\n return this.#processEmit(ev, ...a2);\n };\n this.#process.reallyExit = (code) => {\n return this.#processReallyExit(code);\n };\n }\n unload() {\n if (!this.#loaded) {\n return;\n }\n this.#loaded = false;\n signals.forEach((sig) => {\n const listener = this.#sigListeners[sig];\n if (!listener) {\n throw new Error(\"Listener not defined for signal: \" + sig);\n }\n try {\n this.#process.removeListener(sig, listener);\n } catch (_) {}\n });\n this.#process.emit = this.#originalProcessEmit;\n this.#process.reallyExit = this.#originalProcessReallyExit;\n this.#emitter.count -= 1;\n }\n #processReallyExit(code) {\n if (!processOk(this.#process)) {\n return 0;\n }\n this.#process.exitCode = code || 0;\n this.#emitter.emit(\"exit\", this.#process.exitCode, null);\n return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);\n }\n #processEmit(ev, ...args) {\n const og = this.#originalProcessEmit;\n if (ev === \"exit\" && processOk(this.#process)) {\n if (typeof args[0] === \"number\") {\n this.#process.exitCode = args[0];\n }\n const ret = og.call(this.#process, ev, ...args);\n this.#emitter.emit(\"exit\", this.#process.exitCode, null);\n return ret;\n } else {\n return og.call(this.#process, ev, ...args);\n }\n }\n}\nvar process9 = globalThis.process;\nvar {\n onExit,\n load,\n unload\n} = signalExitWrap(processOk(process9) ? new SignalExit(process9) : new SignalExitFallback);\nvar cleanupOnExit = (subprocess, { cleanup, detached }, { signal }) => {\n if (!cleanup || detached) {\n return;\n }\n const removeExitHandler = onExit(() => {\n subprocess.kill();\n });\n addAbortListener2(signal, () => {\n removeExitHandler();\n });\n};\nvar normalizePipeArguments = ({ source, sourcePromise, boundOptions, createNested }, ...pipeArguments) => {\n const startTime = getStartTime();\n const {\n destination,\n destinationStream,\n destinationError,\n from,\n unpipeSignal\n } = getDestinationStream(boundOptions, createNested, pipeArguments);\n const { sourceStream, sourceError } = getSourceStream(source, from);\n const { options: sourceOptions, fileDescriptors } = SUBPROCESS_OPTIONS.get(source);\n return {\n sourcePromise,\n sourceStream,\n sourceOptions,\n sourceError,\n destination,\n destinationStream,\n destinationError,\n unpipeSignal,\n fileDescriptors,\n startTime\n };\n};\nvar getDestinationStream = (boundOptions, createNested, pipeArguments) => {\n try {\n const {\n destination,\n pipeOptions: { from, to, unpipeSignal } = {}\n } = getDestination(boundOptions, createNested, ...pipeArguments);\n const destinationStream = getToStream(destination, to);\n return {\n destination,\n destinationStream,\n from,\n unpipeSignal\n };\n } catch (error) {\n return { destinationError: error };\n }\n};\nvar getDestination = (boundOptions, createNested, firstArgument, ...pipeArguments) => {\n if (Array.isArray(firstArgument)) {\n const destination = createNested(mapDestinationArguments, boundOptions)(firstArgument, ...pipeArguments);\n return { destination, pipeOptions: boundOptions };\n }\n if (typeof firstArgument === \"string\" || firstArgument instanceof URL || isDenoExecPath(firstArgument)) {\n if (Object.keys(boundOptions).length > 0) {\n throw new TypeError('Please use .pipe(\"file\", ..., options) or .pipe(execa(\"file\", ..., options)) instead of .pipe(options)(\"file\", ...).');\n }\n const [rawFile, rawArguments, rawOptions] = normalizeParameters(firstArgument, ...pipeArguments);\n const destination = createNested(mapDestinationArguments)(rawFile, rawArguments, rawOptions);\n return { destination, pipeOptions: rawOptions };\n }\n if (SUBPROCESS_OPTIONS.has(firstArgument)) {\n if (Object.keys(boundOptions).length > 0) {\n throw new TypeError(\"Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).\");\n }\n return { destination: firstArgument, pipeOptions: pipeArguments[0] };\n }\n throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${firstArgument}`);\n};\nvar mapDestinationArguments = ({ options }) => ({ options: { ...options, stdin: \"pipe\", piped: true } });\nvar getSourceStream = (source, from) => {\n try {\n const sourceStream = getFromStream(source, from);\n return { sourceStream };\n } catch (error) {\n return { sourceError: error };\n }\n};\nvar handlePipeArgumentsError = ({\n sourceStream,\n sourceError,\n destinationStream,\n destinationError,\n fileDescriptors,\n sourceOptions,\n startTime\n}) => {\n const error = getPipeArgumentsError({\n sourceStream,\n sourceError,\n destinationStream,\n destinationError\n });\n if (error !== undefined) {\n throw createNonCommandError({\n error,\n fileDescriptors,\n sourceOptions,\n startTime\n });\n }\n};\nvar getPipeArgumentsError = ({ sourceStream, sourceError, destinationStream, destinationError }) => {\n if (sourceError !== undefined && destinationError !== undefined) {\n return destinationError;\n }\n if (destinationError !== undefined) {\n abortSourceStream(sourceStream);\n return destinationError;\n }\n if (sourceError !== undefined) {\n endDestinationStream(destinationStream);\n return sourceError;\n }\n};\nvar createNonCommandError = ({ error, fileDescriptors, sourceOptions, startTime }) => makeEarlyError({\n error,\n command: PIPE_COMMAND_MESSAGE,\n escapedCommand: PIPE_COMMAND_MESSAGE,\n fileDescriptors,\n options: sourceOptions,\n startTime,\n isSync: false\n});\nvar PIPE_COMMAND_MESSAGE = \"source.pipe(destination)\";\nvar waitForBothSubprocesses = async (subprocessPromises) => {\n const [\n { status: sourceStatus, reason: sourceReason, value: sourceResult = sourceReason },\n { status: destinationStatus, reason: destinationReason, value: destinationResult = destinationReason }\n ] = await subprocessPromises;\n if (!destinationResult.pipedFrom.includes(sourceResult)) {\n destinationResult.pipedFrom.push(sourceResult);\n }\n if (destinationStatus === \"rejected\") {\n throw destinationResult;\n }\n if (sourceStatus === \"rejected\") {\n throw sourceResult;\n }\n return destinationResult;\n};\nvar pipeSubprocessStream = (sourceStream, destinationStream, maxListenersController) => {\n const mergedStream = MERGED_STREAMS.has(destinationStream) ? pipeMoreSubprocessStream(sourceStream, destinationStream) : pipeFirstSubprocessStream(sourceStream, destinationStream);\n incrementMaxListeners(sourceStream, SOURCE_LISTENERS_PER_PIPE, maxListenersController.signal);\n incrementMaxListeners(destinationStream, DESTINATION_LISTENERS_PER_PIPE, maxListenersController.signal);\n cleanupMergedStreamsMap(destinationStream);\n return mergedStream;\n};\nvar pipeFirstSubprocessStream = (sourceStream, destinationStream) => {\n const mergedStream = mergeStreams([sourceStream]);\n pipeStreams(mergedStream, destinationStream);\n MERGED_STREAMS.set(destinationStream, mergedStream);\n return mergedStream;\n};\nvar pipeMoreSubprocessStream = (sourceStream, destinationStream) => {\n const mergedStream = MERGED_STREAMS.get(destinationStream);\n mergedStream.add(sourceStream);\n return mergedStream;\n};\nvar cleanupMergedStreamsMap = async (destinationStream) => {\n try {\n await finished4(destinationStream, { cleanup: true, readable: false, writable: true });\n } catch {}\n MERGED_STREAMS.delete(destinationStream);\n};\nvar MERGED_STREAMS = new WeakMap;\nvar SOURCE_LISTENERS_PER_PIPE = 2;\nvar DESTINATION_LISTENERS_PER_PIPE = 1;\nvar unpipeOnAbort = (unpipeSignal, unpipeContext) => unpipeSignal === undefined ? [] : [unpipeOnSignalAbort(unpipeSignal, unpipeContext)];\nvar unpipeOnSignalAbort = async (unpipeSignal, { sourceStream, mergedStream, fileDescriptors, sourceOptions, startTime }) => {\n await aborted(unpipeSignal, sourceStream);\n await mergedStream.remove(sourceStream);\n const error = new Error(\"Pipe canceled by `unpipeSignal` option.\");\n throw createNonCommandError({\n error,\n fileDescriptors,\n sourceOptions,\n startTime\n });\n};\nvar pipeToSubprocess = (sourceInfo, ...pipeArguments) => {\n if (isPlainObject(pipeArguments[0])) {\n return pipeToSubprocess.bind(undefined, {\n ...sourceInfo,\n boundOptions: { ...sourceInfo.boundOptions, ...pipeArguments[0] }\n });\n }\n const { destination, ...normalizedInfo } = normalizePipeArguments(sourceInfo, ...pipeArguments);\n const promise = handlePipePromise({ ...normalizedInfo, destination });\n promise.pipe = pipeToSubprocess.bind(undefined, {\n ...sourceInfo,\n source: destination,\n sourcePromise: promise,\n boundOptions: {}\n });\n return promise;\n};\nvar handlePipePromise = async ({\n sourcePromise,\n sourceStream,\n sourceOptions,\n sourceError,\n destination,\n destinationStream,\n destinationError,\n unpipeSignal,\n fileDescriptors,\n startTime\n}) => {\n const subprocessPromises = getSubprocessPromises(sourcePromise, destination);\n handlePipeArgumentsError({\n sourceStream,\n sourceError,\n destinationStream,\n destinationError,\n fileDescriptors,\n sourceOptions,\n startTime\n });\n const maxListenersController = new AbortController;\n try {\n const mergedStream = pipeSubprocessStream(sourceStream, destinationStream, maxListenersController);\n return await Promise.race([\n waitForBothSubprocesses(subprocessPromises),\n ...unpipeOnAbort(unpipeSignal, {\n sourceStream,\n mergedStream,\n sourceOptions,\n fileDescriptors,\n startTime\n })\n ]);\n } finally {\n maxListenersController.abort();\n }\n};\nvar getSubprocessPromises = (sourcePromise, destination) => Promise.allSettled([sourcePromise, destination]);\nvar iterateOnSubprocessStream = ({ subprocessStdout, subprocess, binary, shouldEncode, encoding, preserveNewlines }) => {\n const controller = new AbortController;\n stopReadingOnExit(subprocess, controller);\n return iterateOnStream({\n stream: subprocessStdout,\n controller,\n binary,\n shouldEncode: !subprocessStdout.readableObjectMode && shouldEncode,\n encoding,\n shouldSplit: !subprocessStdout.readableObjectMode,\n preserveNewlines\n });\n};\nvar stopReadingOnExit = async (subprocess, controller) => {\n try {\n await subprocess;\n } catch {} finally {\n controller.abort();\n }\n};\nvar iterateForResult = ({ stream, onStreamEnd, lines, encoding, stripFinalNewline: stripFinalNewline2, allMixed }) => {\n const controller = new AbortController;\n stopReadingOnStreamEnd(onStreamEnd, controller, stream);\n const objectMode = stream.readableObjectMode && !allMixed;\n return iterateOnStream({\n stream,\n controller,\n binary: encoding === \"buffer\",\n shouldEncode: !objectMode,\n encoding,\n shouldSplit: !objectMode && lines,\n preserveNewlines: !stripFinalNewline2\n });\n};\nvar stopReadingOnStreamEnd = async (onStreamEnd, controller, stream) => {\n try {\n await onStreamEnd;\n } catch {\n stream.destroy();\n } finally {\n controller.abort();\n }\n};\nvar iterateOnStream = ({ stream, controller, binary, shouldEncode, encoding, shouldSplit, preserveNewlines }) => {\n const onStdoutChunk = on5(stream, \"data\", {\n signal: controller.signal,\n highWaterMark: HIGH_WATER_MARK,\n highWatermark: HIGH_WATER_MARK\n });\n return iterateOnData({\n onStdoutChunk,\n controller,\n binary,\n shouldEncode,\n encoding,\n shouldSplit,\n preserveNewlines\n });\n};\nvar DEFAULT_OBJECT_HIGH_WATER_MARK = getDefaultHighWaterMark3(true);\nvar HIGH_WATER_MARK = DEFAULT_OBJECT_HIGH_WATER_MARK;\nvar iterateOnData = async function* ({ onStdoutChunk, controller, binary, shouldEncode, encoding, shouldSplit, preserveNewlines }) {\n const generators = getGenerators({\n binary,\n shouldEncode,\n encoding,\n shouldSplit,\n preserveNewlines\n });\n try {\n for await (const [chunk] of onStdoutChunk) {\n yield* transformChunkSync(chunk, generators, 0);\n }\n } catch (error) {\n if (!controller.signal.aborted) {\n throw error;\n }\n } finally {\n yield* finalChunksSync(generators);\n }\n};\nvar getGenerators = ({ binary, shouldEncode, encoding, shouldSplit, preserveNewlines }) => [\n getEncodingTransformGenerator(binary, encoding, !shouldEncode),\n getSplitLinesGenerator(binary, preserveNewlines, !shouldSplit, {})\n].filter(Boolean);\nvar getStreamOutput = async ({ stream, onStreamEnd, fdNumber, encoding, buffer, maxBuffer, lines, allMixed, stripFinalNewline: stripFinalNewline2, verboseInfo, streamInfo }) => {\n const logPromise = logOutputAsync({\n stream,\n onStreamEnd,\n fdNumber,\n encoding,\n allMixed,\n verboseInfo,\n streamInfo\n });\n if (!buffer) {\n await Promise.all([resumeStream(stream), logPromise]);\n return;\n }\n const stripFinalNewlineValue = getStripFinalNewline(stripFinalNewline2, fdNumber);\n const iterable = iterateForResult({\n stream,\n onStreamEnd,\n lines,\n encoding,\n stripFinalNewline: stripFinalNewlineValue,\n allMixed\n });\n const [output] = await Promise.all([\n getStreamContents2({\n stream,\n iterable,\n fdNumber,\n encoding,\n maxBuffer,\n lines\n }),\n logPromise\n ]);\n return output;\n};\nvar logOutputAsync = async ({ stream, onStreamEnd, fdNumber, encoding, allMixed, verboseInfo, streamInfo: { fileDescriptors } }) => {\n if (!shouldLogOutput({\n stdioItems: fileDescriptors[fdNumber]?.stdioItems,\n encoding,\n verboseInfo,\n fdNumber\n })) {\n return;\n }\n const linesIterable = iterateForResult({\n stream,\n onStreamEnd,\n lines: true,\n encoding,\n stripFinalNewline: true,\n allMixed\n });\n await logLines(linesIterable, stream, fdNumber, verboseInfo);\n};\nvar resumeStream = async (stream) => {\n await setImmediate();\n if (stream.readableFlowing === null) {\n stream.resume();\n }\n};\nvar getStreamContents2 = async ({ stream, stream: { readableObjectMode }, iterable, fdNumber, encoding, maxBuffer, lines }) => {\n try {\n if (readableObjectMode || lines) {\n return await getStreamAsArray(iterable, { maxBuffer });\n }\n if (encoding === \"buffer\") {\n return new Uint8Array(await getStreamAsArrayBuffer(iterable, { maxBuffer }));\n }\n return await getStreamAsString(iterable, { maxBuffer });\n } catch (error) {\n return handleBufferedData(handleMaxBuffer({\n error,\n stream,\n readableObjectMode,\n lines,\n encoding,\n fdNumber\n }));\n }\n};\nvar getBufferedData = async (streamPromise) => {\n try {\n return await streamPromise;\n } catch (error) {\n return handleBufferedData(error);\n }\n};\nvar handleBufferedData = ({ bufferedData }) => isArrayBuffer(bufferedData) ? new Uint8Array(bufferedData) : bufferedData;\nvar waitForStream = async (stream, fdNumber, streamInfo, { isSameDirection, stopOnExit = false } = {}) => {\n const state = handleStdinDestroy(stream, streamInfo);\n const abortController = new AbortController;\n try {\n await Promise.race([\n ...stopOnExit ? [streamInfo.exitPromise] : [],\n finished5(stream, { cleanup: true, signal: abortController.signal })\n ]);\n } catch (error) {\n if (!state.stdinCleanedUp) {\n handleStreamError(error, fdNumber, streamInfo, isSameDirection);\n }\n } finally {\n abortController.abort();\n }\n};\nvar handleStdinDestroy = (stream, { originalStreams: [originalStdin], subprocess }) => {\n const state = { stdinCleanedUp: false };\n if (stream === originalStdin) {\n spyOnStdinDestroy(stream, subprocess, state);\n }\n return state;\n};\nvar spyOnStdinDestroy = (subprocessStdin, subprocess, state) => {\n const { _destroy } = subprocessStdin;\n subprocessStdin._destroy = (...destroyArguments) => {\n setStdinCleanedUp(subprocess, state);\n _destroy.call(subprocessStdin, ...destroyArguments);\n };\n};\nvar setStdinCleanedUp = ({ exitCode, signalCode }, state) => {\n if (exitCode !== null || signalCode !== null) {\n state.stdinCleanedUp = true;\n }\n};\nvar handleStreamError = (error, fdNumber, streamInfo, isSameDirection) => {\n if (!shouldIgnoreStreamError(error, fdNumber, streamInfo, isSameDirection)) {\n throw error;\n }\n};\nvar shouldIgnoreStreamError = (error, fdNumber, streamInfo, isSameDirection = true) => {\n if (streamInfo.propagating) {\n return isStreamEpipe(error) || isStreamAbort(error);\n }\n streamInfo.propagating = true;\n return isInputFileDescriptor(streamInfo, fdNumber) === isSameDirection ? isStreamEpipe(error) : isStreamAbort(error);\n};\nvar isInputFileDescriptor = ({ fileDescriptors }, fdNumber) => fdNumber !== \"all\" && fileDescriptors[fdNumber].direction === \"input\";\nvar isStreamAbort = (error) => error?.code === \"ERR_STREAM_PREMATURE_CLOSE\";\nvar isStreamEpipe = (error) => error?.code === \"EPIPE\";\nvar waitForStdioStreams = ({ subprocess, encoding, buffer, maxBuffer, lines, stripFinalNewline: stripFinalNewline2, verboseInfo, streamInfo }) => subprocess.stdio.map((stream, fdNumber) => waitForSubprocessStream({\n stream,\n fdNumber,\n encoding,\n buffer: buffer[fdNumber],\n maxBuffer: maxBuffer[fdNumber],\n lines: lines[fdNumber],\n allMixed: false,\n stripFinalNewline: stripFinalNewline2,\n verboseInfo,\n streamInfo\n}));\nvar waitForSubprocessStream = async ({ stream, fdNumber, encoding, buffer, maxBuffer, lines, allMixed, stripFinalNewline: stripFinalNewline2, verboseInfo, streamInfo }) => {\n if (!stream) {\n return;\n }\n const onStreamEnd = waitForStream(stream, fdNumber, streamInfo);\n if (isInputFileDescriptor(streamInfo, fdNumber)) {\n await onStreamEnd;\n return;\n }\n const [output] = await Promise.all([\n getStreamOutput({\n stream,\n onStreamEnd,\n fdNumber,\n encoding,\n buffer,\n maxBuffer,\n lines,\n allMixed,\n stripFinalNewline: stripFinalNewline2,\n verboseInfo,\n streamInfo\n }),\n onStreamEnd\n ]);\n return output;\n};\nvar makeAllStream = ({ stdout, stderr }, { all }) => all && (stdout || stderr) ? mergeStreams([stdout, stderr].filter(Boolean)) : undefined;\nvar waitForAllStream = ({ subprocess, encoding, buffer, maxBuffer, lines, stripFinalNewline: stripFinalNewline2, verboseInfo, streamInfo }) => waitForSubprocessStream({\n ...getAllStream(subprocess, buffer),\n fdNumber: \"all\",\n encoding,\n maxBuffer: maxBuffer[1] + maxBuffer[2],\n lines: lines[1] || lines[2],\n allMixed: getAllMixed(subprocess),\n stripFinalNewline: stripFinalNewline2,\n verboseInfo,\n streamInfo\n});\nvar getAllStream = ({ stdout, stderr, all }, [, bufferStdout, bufferStderr]) => {\n const buffer = bufferStdout || bufferStderr;\n if (!buffer) {\n return { stream: all, buffer };\n }\n if (!bufferStdout) {\n return { stream: stderr, buffer };\n }\n if (!bufferStderr) {\n return { stream: stdout, buffer };\n }\n return { stream: all, buffer };\n};\nvar getAllMixed = ({ all, stdout, stderr }) => all && stdout && stderr && stdout.readableObjectMode !== stderr.readableObjectMode;\nvar shouldLogIpc = (verboseInfo) => isFullVerbose(verboseInfo, \"ipc\");\nvar logIpcOutput = (message, verboseInfo) => {\n const verboseMessage = serializeVerboseMessage(message);\n verboseLog({\n type: \"ipc\",\n verboseMessage,\n fdNumber: \"ipc\",\n verboseInfo\n });\n};\nvar waitForIpcOutput = async ({\n subprocess,\n buffer: bufferArray,\n maxBuffer: maxBufferArray,\n ipc,\n ipcOutput,\n verboseInfo\n}) => {\n if (!ipc) {\n return ipcOutput;\n }\n const isVerbose2 = shouldLogIpc(verboseInfo);\n const buffer = getFdSpecificValue(bufferArray, \"ipc\");\n const maxBuffer = getFdSpecificValue(maxBufferArray, \"ipc\");\n for await (const message of loopOnMessages({\n anyProcess: subprocess,\n channel: subprocess.channel,\n isSubprocess: false,\n ipc,\n shouldAwait: false,\n reference: true\n })) {\n if (buffer) {\n checkIpcMaxBuffer(subprocess, ipcOutput, maxBuffer);\n ipcOutput.push(message);\n }\n if (isVerbose2) {\n logIpcOutput(message, verboseInfo);\n }\n }\n return ipcOutput;\n};\nvar getBufferedIpcOutput = async (ipcOutputPromise, ipcOutput) => {\n await Promise.allSettled([ipcOutputPromise]);\n return ipcOutput;\n};\nvar waitForSubprocessResult = async ({\n subprocess,\n options: {\n encoding,\n buffer,\n maxBuffer,\n lines,\n timeoutDuration: timeout,\n cancelSignal,\n gracefulCancel,\n forceKillAfterDelay,\n stripFinalNewline: stripFinalNewline2,\n ipc,\n ipcInput\n },\n context,\n verboseInfo,\n fileDescriptors,\n originalStreams,\n onInternalError,\n controller\n}) => {\n const exitPromise = waitForExit(subprocess, context);\n const streamInfo = {\n originalStreams,\n fileDescriptors,\n subprocess,\n exitPromise,\n propagating: false\n };\n const stdioPromises = waitForStdioStreams({\n subprocess,\n encoding,\n buffer,\n maxBuffer,\n lines,\n stripFinalNewline: stripFinalNewline2,\n verboseInfo,\n streamInfo\n });\n const allPromise = waitForAllStream({\n subprocess,\n encoding,\n buffer,\n maxBuffer,\n lines,\n stripFinalNewline: stripFinalNewline2,\n verboseInfo,\n streamInfo\n });\n const ipcOutput = [];\n const ipcOutputPromise = waitForIpcOutput({\n subprocess,\n buffer,\n maxBuffer,\n ipc,\n ipcOutput,\n verboseInfo\n });\n const originalPromises = waitForOriginalStreams(originalStreams, subprocess, streamInfo);\n const customStreamsEndPromises = waitForCustomStreamsEnd(fileDescriptors, streamInfo);\n try {\n return await Promise.race([\n Promise.all([\n {},\n waitForSuccessfulExit(exitPromise),\n Promise.all(stdioPromises),\n allPromise,\n ipcOutputPromise,\n sendIpcInput(subprocess, ipcInput),\n ...originalPromises,\n ...customStreamsEndPromises\n ]),\n onInternalError,\n throwOnSubprocessError(subprocess, controller),\n ...throwOnTimeout(subprocess, timeout, context, controller),\n ...throwOnCancel({\n subprocess,\n cancelSignal,\n gracefulCancel,\n context,\n controller\n }),\n ...throwOnGracefulCancel({\n subprocess,\n cancelSignal,\n gracefulCancel,\n forceKillAfterDelay,\n context,\n controller\n })\n ]);\n } catch (error) {\n context.terminationReason ??= \"other\";\n return Promise.all([\n { error },\n exitPromise,\n Promise.all(stdioPromises.map((stdioPromise) => getBufferedData(stdioPromise))),\n getBufferedData(allPromise),\n getBufferedIpcOutput(ipcOutputPromise, ipcOutput),\n Promise.allSettled(originalPromises),\n Promise.allSettled(customStreamsEndPromises)\n ]);\n }\n};\nvar waitForOriginalStreams = (originalStreams, subprocess, streamInfo) => originalStreams.map((stream, fdNumber) => stream === subprocess.stdio[fdNumber] ? undefined : waitForStream(stream, fdNumber, streamInfo));\nvar waitForCustomStreamsEnd = (fileDescriptors, streamInfo) => fileDescriptors.flatMap(({ stdioItems }, fdNumber) => stdioItems.filter(({ value, stream = value }) => isStream(stream, { checkOpen: false }) && !isStandardStream(stream)).map(({ type, value, stream = value }) => waitForStream(stream, fdNumber, streamInfo, {\n isSameDirection: TRANSFORM_TYPES.has(type),\n stopOnExit: type === \"native\"\n})));\nvar throwOnSubprocessError = async (subprocess, { signal }) => {\n const [error] = await once8(subprocess, \"error\", { signal });\n throw error;\n};\nvar initializeConcurrentStreams = () => ({\n readableDestroy: new WeakMap,\n writableFinal: new WeakMap,\n writableDestroy: new WeakMap\n});\nvar addConcurrentStream = (concurrentStreams, stream, waitName) => {\n const weakMap = concurrentStreams[waitName];\n if (!weakMap.has(stream)) {\n weakMap.set(stream, []);\n }\n const promises = weakMap.get(stream);\n const promise = createDeferred();\n promises.push(promise);\n const resolve4 = promise.resolve.bind(promise);\n return { resolve: resolve4, promises };\n};\nvar waitForConcurrentStreams = async ({ resolve: resolve4, promises }, subprocess) => {\n resolve4();\n const [isSubprocessExit] = await Promise.race([\n Promise.allSettled([true, subprocess]),\n Promise.all([false, ...promises])\n ]);\n return !isSubprocessExit;\n};\nvar safeWaitForSubprocessStdin = async (subprocessStdin) => {\n if (subprocessStdin === undefined) {\n return;\n }\n try {\n await waitForSubprocessStdin(subprocessStdin);\n } catch {}\n};\nvar safeWaitForSubprocessStdout = async (subprocessStdout) => {\n if (subprocessStdout === undefined) {\n return;\n }\n try {\n await waitForSubprocessStdout(subprocessStdout);\n } catch {}\n};\nvar waitForSubprocessStdin = async (subprocessStdin) => {\n await finished6(subprocessStdin, { cleanup: true, readable: false, writable: true });\n};\nvar waitForSubprocessStdout = async (subprocessStdout) => {\n await finished6(subprocessStdout, { cleanup: true, readable: true, writable: false });\n};\nvar waitForSubprocess = async (subprocess, error) => {\n await subprocess;\n if (error) {\n throw error;\n }\n};\nvar destroyOtherStream = (stream, isOpen, error) => {\n if (error && !isStreamAbort(error)) {\n stream.destroy(error);\n } else if (isOpen) {\n stream.destroy();\n }\n};\nvar createReadable = ({ subprocess, concurrentStreams, encoding }, { from, binary: binaryOption = true, preserveNewlines = true } = {}) => {\n const binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n const { subprocessStdout, waitReadableDestroy } = getSubprocessStdout(subprocess, from, concurrentStreams);\n const { readableEncoding, readableObjectMode, readableHighWaterMark } = getReadableOptions(subprocessStdout, binary);\n const { read, onStdoutDataDone } = getReadableMethods({\n subprocessStdout,\n subprocess,\n binary,\n encoding,\n preserveNewlines\n });\n const readable2 = new Readable3({\n read,\n destroy: callbackify2(onReadableDestroy.bind(undefined, { subprocessStdout, subprocess, waitReadableDestroy })),\n highWaterMark: readableHighWaterMark,\n objectMode: readableObjectMode,\n encoding: readableEncoding\n });\n onStdoutFinished({\n subprocessStdout,\n onStdoutDataDone,\n readable: readable2,\n subprocess\n });\n return readable2;\n};\nvar getSubprocessStdout = (subprocess, from, concurrentStreams) => {\n const subprocessStdout = getFromStream(subprocess, from);\n const waitReadableDestroy = addConcurrentStream(concurrentStreams, subprocessStdout, \"readableDestroy\");\n return { subprocessStdout, waitReadableDestroy };\n};\nvar getReadableOptions = ({ readableEncoding, readableObjectMode, readableHighWaterMark }, binary) => binary ? { readableEncoding, readableObjectMode, readableHighWaterMark } : { readableEncoding, readableObjectMode: true, readableHighWaterMark: DEFAULT_OBJECT_HIGH_WATER_MARK };\nvar getReadableMethods = ({ subprocessStdout, subprocess, binary, encoding, preserveNewlines }) => {\n const onStdoutDataDone = createDeferred();\n const onStdoutData = iterateOnSubprocessStream({\n subprocessStdout,\n subprocess,\n binary,\n shouldEncode: !binary,\n encoding,\n preserveNewlines\n });\n return {\n read() {\n onRead(this, onStdoutData, onStdoutDataDone);\n },\n onStdoutDataDone\n };\n};\nvar onRead = async (readable2, onStdoutData, onStdoutDataDone) => {\n try {\n const { value, done } = await onStdoutData.next();\n if (done) {\n onStdoutDataDone.resolve();\n } else {\n readable2.push(value);\n }\n } catch {}\n};\nvar onStdoutFinished = async ({ subprocessStdout, onStdoutDataDone, readable: readable2, subprocess, subprocessStdin }) => {\n try {\n await waitForSubprocessStdout(subprocessStdout);\n await subprocess;\n await safeWaitForSubprocessStdin(subprocessStdin);\n await onStdoutDataDone;\n if (readable2.readable) {\n readable2.push(null);\n }\n } catch (error) {\n await safeWaitForSubprocessStdin(subprocessStdin);\n destroyOtherReadable(readable2, error);\n }\n};\nvar onReadableDestroy = async ({ subprocessStdout, subprocess, waitReadableDestroy }, error) => {\n if (await waitForConcurrentStreams(waitReadableDestroy, subprocess)) {\n destroyOtherReadable(subprocessStdout, error);\n await waitForSubprocess(subprocess, error);\n }\n};\nvar destroyOtherReadable = (stream, error) => {\n destroyOtherStream(stream, stream.readable, error);\n};\nvar createWritable = ({ subprocess, concurrentStreams }, { to } = {}) => {\n const { subprocessStdin, waitWritableFinal, waitWritableDestroy } = getSubprocessStdin(subprocess, to, concurrentStreams);\n const writable2 = new Writable3({\n ...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal),\n destroy: callbackify3(onWritableDestroy.bind(undefined, {\n subprocessStdin,\n subprocess,\n waitWritableFinal,\n waitWritableDestroy\n })),\n highWaterMark: subprocessStdin.writableHighWaterMark,\n objectMode: subprocessStdin.writableObjectMode\n });\n onStdinFinished(subprocessStdin, writable2);\n return writable2;\n};\nvar getSubprocessStdin = (subprocess, to, concurrentStreams) => {\n const subprocessStdin = getToStream(subprocess, to);\n const waitWritableFinal = addConcurrentStream(concurrentStreams, subprocessStdin, \"writableFinal\");\n const waitWritableDestroy = addConcurrentStream(concurrentStreams, subprocessStdin, \"writableDestroy\");\n return { subprocessStdin, waitWritableFinal, waitWritableDestroy };\n};\nvar getWritableMethods = (subprocessStdin, subprocess, waitWritableFinal) => ({\n write: onWrite.bind(undefined, subprocessStdin),\n final: callbackify3(onWritableFinal.bind(undefined, subprocessStdin, subprocess, waitWritableFinal))\n});\nvar onWrite = (subprocessStdin, chunk, encoding, done) => {\n if (subprocessStdin.write(chunk, encoding)) {\n done();\n } else {\n subprocessStdin.once(\"drain\", done);\n }\n};\nvar onWritableFinal = async (subprocessStdin, subprocess, waitWritableFinal) => {\n if (await waitForConcurrentStreams(waitWritableFinal, subprocess)) {\n if (subprocessStdin.writable) {\n subprocessStdin.end();\n }\n await subprocess;\n }\n};\nvar onStdinFinished = async (subprocessStdin, writable2, subprocessStdout) => {\n try {\n await waitForSubprocessStdin(subprocessStdin);\n if (writable2.writable) {\n writable2.end();\n }\n } catch (error) {\n await safeWaitForSubprocessStdout(subprocessStdout);\n destroyOtherWritable(writable2, error);\n }\n};\nvar onWritableDestroy = async ({ subprocessStdin, subprocess, waitWritableFinal, waitWritableDestroy }, error) => {\n await waitForConcurrentStreams(waitWritableFinal, subprocess);\n if (await waitForConcurrentStreams(waitWritableDestroy, subprocess)) {\n destroyOtherWritable(subprocessStdin, error);\n await waitForSubprocess(subprocess, error);\n }\n};\nvar destroyOtherWritable = (stream, error) => {\n destroyOtherStream(stream, stream.writable, error);\n};\nvar createDuplex = ({ subprocess, concurrentStreams, encoding }, { from, to, binary: binaryOption = true, preserveNewlines = true } = {}) => {\n const binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n const { subprocessStdout, waitReadableDestroy } = getSubprocessStdout(subprocess, from, concurrentStreams);\n const { subprocessStdin, waitWritableFinal, waitWritableDestroy } = getSubprocessStdin(subprocess, to, concurrentStreams);\n const { readableEncoding, readableObjectMode, readableHighWaterMark } = getReadableOptions(subprocessStdout, binary);\n const { read, onStdoutDataDone } = getReadableMethods({\n subprocessStdout,\n subprocess,\n binary,\n encoding,\n preserveNewlines\n });\n const duplex2 = new Duplex3({\n read,\n ...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal),\n destroy: callbackify4(onDuplexDestroy.bind(undefined, {\n subprocessStdout,\n subprocessStdin,\n subprocess,\n waitReadableDestroy,\n waitWritableFinal,\n waitWritableDestroy\n })),\n readableHighWaterMark,\n writableHighWaterMark: subprocessStdin.writableHighWaterMark,\n readableObjectMode,\n writableObjectMode: subprocessStdin.writableObjectMode,\n encoding: readableEncoding\n });\n onStdoutFinished({\n subprocessStdout,\n onStdoutDataDone,\n readable: duplex2,\n subprocess,\n subprocessStdin\n });\n onStdinFinished(subprocessStdin, duplex2, subprocessStdout);\n return duplex2;\n};\nvar onDuplexDestroy = async ({ subprocessStdout, subprocessStdin, subprocess, waitReadableDestroy, waitWritableFinal, waitWritableDestroy }, error) => {\n await Promise.all([\n onReadableDestroy({ subprocessStdout, subprocess, waitReadableDestroy }, error),\n onWritableDestroy({\n subprocessStdin,\n subprocess,\n waitWritableFinal,\n waitWritableDestroy\n }, error)\n ]);\n};\nvar createIterable = (subprocess, encoding, {\n from,\n binary: binaryOption = false,\n preserveNewlines = false\n} = {}) => {\n const binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n const subprocessStdout = getFromStream(subprocess, from);\n const onStdoutData = iterateOnSubprocessStream({\n subprocessStdout,\n subprocess,\n binary,\n shouldEncode: true,\n encoding,\n preserveNewlines\n });\n return iterateOnStdoutData(onStdoutData, subprocessStdout, subprocess);\n};\nvar iterateOnStdoutData = async function* (onStdoutData, subprocessStdout, subprocess) {\n try {\n yield* onStdoutData;\n } finally {\n if (subprocessStdout.readable) {\n subprocessStdout.destroy();\n }\n await subprocess;\n }\n};\nvar addConvertedStreams = (subprocess, { encoding }) => {\n const concurrentStreams = initializeConcurrentStreams();\n subprocess.readable = createReadable.bind(undefined, { subprocess, concurrentStreams, encoding });\n subprocess.writable = createWritable.bind(undefined, { subprocess, concurrentStreams });\n subprocess.duplex = createDuplex.bind(undefined, { subprocess, concurrentStreams, encoding });\n subprocess.iterable = createIterable.bind(undefined, subprocess, encoding);\n subprocess[Symbol.asyncIterator] = createIterable.bind(undefined, subprocess, encoding, {});\n};\nvar mergePromise = (subprocess, promise) => {\n for (const [property, descriptor] of descriptors) {\n const value = descriptor.value.bind(promise);\n Reflect.defineProperty(subprocess, property, { ...descriptor, value });\n }\n};\nvar nativePromisePrototype = (async () => {})().constructor.prototype;\nvar descriptors = [\"then\", \"catch\", \"finally\"].map((property) => [\n property,\n Reflect.getOwnPropertyDescriptor(nativePromisePrototype, property)\n]);\nvar execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested) => {\n const { file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors } = handleAsyncArguments(rawFile, rawArguments, rawOptions);\n const { subprocess, promise } = spawnSubprocessAsync({\n file,\n commandArguments,\n options,\n startTime,\n verboseInfo,\n command,\n escapedCommand,\n fileDescriptors\n });\n subprocess.pipe = pipeToSubprocess.bind(undefined, {\n source: subprocess,\n sourcePromise: promise,\n boundOptions: {},\n createNested\n });\n mergePromise(subprocess, promise);\n SUBPROCESS_OPTIONS.set(subprocess, { options, fileDescriptors });\n return subprocess;\n};\nvar handleAsyncArguments = (rawFile, rawArguments, rawOptions) => {\n const { command, escapedCommand, startTime, verboseInfo } = handleCommand(rawFile, rawArguments, rawOptions);\n const { file, commandArguments, options: normalizedOptions } = normalizeOptions(rawFile, rawArguments, rawOptions);\n const options = handleAsyncOptions(normalizedOptions);\n const fileDescriptors = handleStdioAsync(options, verboseInfo);\n return {\n file,\n commandArguments,\n command,\n escapedCommand,\n startTime,\n verboseInfo,\n options,\n fileDescriptors\n };\n};\nvar handleAsyncOptions = ({ timeout, signal, ...options }) => {\n if (signal !== undefined) {\n throw new TypeError('The \"signal\" option has been renamed to \"cancelSignal\" instead.');\n }\n return { ...options, timeoutDuration: timeout };\n};\nvar spawnSubprocessAsync = ({ file, commandArguments, options, startTime, verboseInfo, command, escapedCommand, fileDescriptors }) => {\n let subprocess;\n try {\n subprocess = spawn(...concatenateShell(file, commandArguments, options));\n } catch (error) {\n return handleEarlyError({\n error,\n command,\n escapedCommand,\n fileDescriptors,\n options,\n startTime,\n verboseInfo\n });\n }\n const controller = new AbortController;\n setMaxListeners(Number.POSITIVE_INFINITY, controller.signal);\n const originalStreams = [...subprocess.stdio];\n pipeOutputAsync(subprocess, fileDescriptors, controller);\n cleanupOnExit(subprocess, options, controller);\n const context = {};\n const onInternalError = createDeferred();\n subprocess.kill = subprocessKill.bind(undefined, {\n kill: subprocess.kill.bind(subprocess),\n options,\n onInternalError,\n context,\n controller\n });\n subprocess.all = makeAllStream(subprocess, options);\n addConvertedStreams(subprocess, options);\n addIpcMethods(subprocess, options);\n const promise = handlePromise({\n subprocess,\n options,\n startTime,\n verboseInfo,\n fileDescriptors,\n originalStreams,\n command,\n escapedCommand,\n context,\n onInternalError,\n controller\n });\n return { subprocess, promise };\n};\nvar handlePromise = async ({ subprocess, options, startTime, verboseInfo, fileDescriptors, originalStreams, command, escapedCommand, context, onInternalError, controller }) => {\n const [\n errorInfo,\n [exitCode, signal],\n stdioResults,\n allResult,\n ipcOutput\n ] = await waitForSubprocessResult({\n subprocess,\n options,\n context,\n verboseInfo,\n fileDescriptors,\n originalStreams,\n onInternalError,\n controller\n });\n controller.abort();\n onInternalError.resolve();\n const stdio = stdioResults.map((stdioResult, fdNumber) => stripNewline(stdioResult, options, fdNumber));\n const all = stripNewline(allResult, options, \"all\");\n const result = getAsyncResult({\n errorInfo,\n exitCode,\n signal,\n stdio,\n all,\n ipcOutput,\n context,\n options,\n command,\n escapedCommand,\n startTime\n });\n return handleResult(result, verboseInfo, options);\n};\nvar getAsyncResult = ({ errorInfo, exitCode, signal, stdio, all, ipcOutput, context, options, command, escapedCommand, startTime }) => (\"error\" in errorInfo) ? makeError({\n error: errorInfo.error,\n command,\n escapedCommand,\n timedOut: context.terminationReason === \"timeout\",\n isCanceled: context.terminationReason === \"cancel\" || context.terminationReason === \"gracefulCancel\",\n isGracefullyCanceled: context.terminationReason === \"gracefulCancel\",\n isMaxBuffer: errorInfo.error instanceof MaxBufferError,\n isForcefullyTerminated: context.isForcefullyTerminated,\n exitCode,\n signal,\n stdio,\n all,\n ipcOutput,\n options,\n startTime,\n isSync: false\n}) : makeSuccessResult({\n command,\n escapedCommand,\n stdio,\n all,\n ipcOutput,\n options,\n startTime\n});\nvar mergeOptions = (boundOptions, options) => {\n const newOptions = Object.fromEntries(Object.entries(options).map(([optionName, optionValue]) => [\n optionName,\n mergeOption(optionName, boundOptions[optionName], optionValue)\n ]));\n return { ...boundOptions, ...newOptions };\n};\nvar mergeOption = (optionName, boundOptionValue, optionValue) => {\n if (DEEP_OPTIONS.has(optionName) && isPlainObject(boundOptionValue) && isPlainObject(optionValue)) {\n return { ...boundOptionValue, ...optionValue };\n }\n return optionValue;\n};\nvar DEEP_OPTIONS = new Set([\"env\", ...FD_SPECIFIC_OPTIONS]);\nvar createExeca = (mapArguments, boundOptions, deepOptions, setBoundExeca) => {\n const createNested = (mapArguments2, boundOptions2, setBoundExeca2) => createExeca(mapArguments2, boundOptions2, deepOptions, setBoundExeca2);\n const boundExeca = (...execaArguments) => callBoundExeca({\n mapArguments,\n deepOptions,\n boundOptions,\n setBoundExeca,\n createNested\n }, ...execaArguments);\n if (setBoundExeca !== undefined) {\n setBoundExeca(boundExeca, createNested, boundOptions);\n }\n return boundExeca;\n};\nvar callBoundExeca = ({ mapArguments, deepOptions = {}, boundOptions = {}, setBoundExeca, createNested }, firstArgument, ...nextArguments) => {\n if (isPlainObject(firstArgument)) {\n return createNested(mapArguments, mergeOptions(boundOptions, firstArgument), setBoundExeca);\n }\n const { file, commandArguments, options, isSync } = parseArguments({\n mapArguments,\n firstArgument,\n nextArguments,\n deepOptions,\n boundOptions\n });\n return isSync ? execaCoreSync(file, commandArguments, options) : execaCoreAsync(file, commandArguments, options, createNested);\n};\nvar parseArguments = ({ mapArguments, firstArgument, nextArguments, deepOptions, boundOptions }) => {\n const callArguments = isTemplateString(firstArgument) ? parseTemplates(firstArgument, nextArguments) : [firstArgument, ...nextArguments];\n const [initialFile, initialArguments, initialOptions] = normalizeParameters(...callArguments);\n const mergedOptions = mergeOptions(mergeOptions(deepOptions, boundOptions), initialOptions);\n const {\n file = initialFile,\n commandArguments = initialArguments,\n options = mergedOptions,\n isSync = false\n } = mapArguments({ file: initialFile, commandArguments: initialArguments, options: mergedOptions });\n return {\n file,\n commandArguments,\n options,\n isSync\n };\n};\nvar mapCommandAsync = ({ file, commandArguments }) => parseCommand(file, commandArguments);\nvar mapCommandSync = ({ file, commandArguments }) => ({ ...parseCommand(file, commandArguments), isSync: true });\nvar parseCommand = (command, unusedArguments) => {\n if (unusedArguments.length > 0) {\n throw new TypeError(`The command and its arguments must be passed as a single string: ${command} ${unusedArguments}.`);\n }\n const [file, ...commandArguments] = parseCommandString(command);\n return { file, commandArguments };\n};\nvar parseCommandString = (command) => {\n if (typeof command !== \"string\") {\n throw new TypeError(`The command must be a string: ${String(command)}.`);\n }\n const trimmedCommand = command.trim();\n if (trimmedCommand === \"\") {\n return [];\n }\n const tokens = [];\n for (const token of trimmedCommand.split(SPACES_REGEXP)) {\n const previousToken = tokens.at(-1);\n if (previousToken && previousToken.endsWith(\"\\\\\")) {\n tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n } else {\n tokens.push(token);\n }\n }\n return tokens;\n};\nvar SPACES_REGEXP = / +/g;\nvar setScriptSync = (boundExeca, createNested, boundOptions) => {\n boundExeca.sync = createNested(mapScriptSync, boundOptions);\n boundExeca.s = boundExeca.sync;\n};\nvar mapScriptAsync = ({ options }) => getScriptOptions(options);\nvar mapScriptSync = ({ options }) => ({ ...getScriptOptions(options), isSync: true });\nvar getScriptOptions = (options) => ({ options: { ...getScriptStdinOption(options), ...options } });\nvar getScriptStdinOption = ({ input, inputFile, stdio }) => input === undefined && inputFile === undefined && stdio === undefined ? { stdin: \"inherit\" } : {};\nvar deepScriptOptions = { preferLocal: true };\nvar execa = createExeca(() => ({}));\nvar execaSync = createExeca(() => ({ isSync: true }));\nvar execaCommand = createExeca(mapCommandAsync);\nvar execaCommandSync = createExeca(mapCommandSync);\nvar execaNode = createExeca(mapNode);\nvar $ = createExeca(mapScriptAsync, {}, deepScriptOptions, setScriptSync);\nvar {\n sendMessage: sendMessage2,\n getOneMessage: getOneMessage2,\n getEachMessage: getEachMessage2,\n getCancelSignal: getCancelSignal2\n} = getIpcExport();\n\nclass Isolator {\n runtime;\n constructor(runtime) {\n this.runtime = runtime;\n }\n}\n\nclass SandboxError extends Error {\n constructor(message) {\n super(message);\n this.name = \"SandboxError\";\n }\n}\n\nclass ExecutionError extends SandboxError {\n constructor(message) {\n super(message);\n this.name = \"ExecutionError\";\n }\n}\n\nclass TimeoutError extends SandboxError {\n constructor(message) {\n super(message);\n this.name = \"TimeoutError\";\n }\n}\n\nclass IsolationError extends SandboxError {\n constructor(message) {\n super(message);\n this.name = \"IsolationError\";\n }\n}\n\nclass FileSystemError extends SandboxError {\n constructor(message) {\n super(message);\n this.name = \"FileSystemError\";\n }\n}\n\nclass NoneIsolator extends Isolator {\n workDir;\n constructor(runtime) {\n super(runtime);\n this.workDir = path6.join(process.cwd(), \".sandbox\", `session-${Date.now()}`);\n }\n async shell(command, options = {}) {\n const { timeout = 30000, env = {} } = options;\n return this.runCommand(command, timeout, env);\n }\n async execute(code, options = {}) {\n const { timeout = 30000, env = {} } = options;\n const command = this.buildExecuteCommand(code);\n const result = await this.runCommand(command, timeout, env);\n if (!result.success) {\n throw new ExecutionError(result.stderr || `Execution failed with exit code ${result.exitCode}`);\n }\n return result;\n }\n async evaluate(expr, options = {}) {\n const { timeout = 30000, env = {} } = options;\n const command = this.buildEvaluateCommand(expr);\n const result = await this.runCommand(command, timeout, env);\n if (!result.success) {\n throw new ExecutionError(result.stderr || `Evaluation failed with exit code ${result.exitCode}`);\n }\n return {\n value: result.stdout.trim(),\n executionTime: result.executionTime\n };\n }\n buildExecuteCommand(code) {\n const escapedCode = code.replace(/'/g, \"'\\\\''\");\n switch (this.runtime) {\n case \"node\":\n return `node -e '${escapedCode}'`;\n case \"python\":\n return `python3 -c '${escapedCode}'`;\n default:\n throw new ExecutionError(`Unknown runtime: ${this.runtime}`);\n }\n }\n buildEvaluateCommand(expr) {\n const escapedExpr = expr.replace(/'/g, \"'\\\\''\");\n switch (this.runtime) {\n case \"node\":\n return `node -p '${escapedExpr}'`;\n case \"python\":\n return `python3 -c 'print(${escapedExpr})'`;\n default:\n throw new ExecutionError(`Unknown runtime: ${this.runtime}`);\n }\n }\n async runCommand(command, timeout, env) {\n const startTime = Date.now();\n await fs.mkdir(this.workDir, { recursive: true });\n try {\n const result = await execa(\"sh\", [\"-c\", command], {\n cwd: this.workDir,\n env: { ...process.env, ...env },\n timeout,\n maxBuffer: 10 * 1024 * 1024,\n reject: false,\n all: true\n });\n return {\n success: result.exitCode === 0,\n stdout: result.stdout || \"\",\n stderr: result.stderr || \"\",\n exitCode: result.exitCode ?? 0,\n executionTime: Date.now() - startTime\n };\n } catch (error) {\n if (error && typeof error === \"object\" && \"timedOut\" in error && error.timedOut) {\n throw new TimeoutError(`Execution timed out after ${timeout}ms`);\n }\n throw new ExecutionError(`Command execution failed: ${error.message}`);\n }\n }\n async upload(data, remotePath) {\n try {\n const fullPath = path6.join(this.workDir, remotePath);\n await fs.mkdir(path6.dirname(fullPath), { recursive: true });\n await fs.writeFile(fullPath, data);\n } catch (error) {\n throw new FileSystemError(`Failed to upload file: ${error.message}`);\n }\n }\n async download(remotePath) {\n try {\n const fullPath = path6.join(this.workDir, remotePath);\n return await fs.readFile(fullPath);\n } catch (error) {\n throw new FileSystemError(`Failed to download file: ${error.message}`);\n }\n }\n async destroy() {\n try {\n await fs.rm(this.workDir, { recursive: true, force: true });\n } catch {}\n }\n}\nfunction logForDebugging(message, options) {\n if (!process.env.SRT_DEBUG) {\n return;\n }\n const level = options?.level || \"info\";\n const prefix = \"[SandboxDebug]\";\n switch (level) {\n case \"error\":\n console.error(`${prefix} ${message}`);\n break;\n case \"warn\":\n console.warn(`${prefix} ${message}`);\n break;\n default:\n console.error(`${prefix} ${message}`);\n }\n}\nfunction createHttpProxyServer(options) {\n const server = createServer();\n server.on(\"connect\", async (req, socket) => {\n socket.on(\"error\", (err) => {\n logForDebugging(`Client socket error: ${err.message}`, { level: \"error\" });\n });\n try {\n const [hostname, portStr] = req.url.split(\":\");\n const port = portStr === undefined ? undefined : parseInt(portStr, 10);\n if (!hostname || !port) {\n logForDebugging(`Invalid CONNECT request: ${req.url}`, {\n level: \"error\"\n });\n socket.end(`HTTP/1.1 400 Bad Request\\r\n\\r\n`);\n return;\n }\n const allowed = await options.filter(port, hostname, socket);\n if (!allowed) {\n logForDebugging(`Connection blocked to ${hostname}:${port}`, {\n level: \"error\"\n });\n socket.end(`HTTP/1.1 403 Forbidden\\r\n` + `Content-Type: text/plain\\r\n` + `X-Proxy-Error: blocked-by-allowlist\\r\n` + `\\r\n` + \"Connection blocked by network allowlist\");\n return;\n }\n const mitmSocketPath = options.getMitmSocketPath?.(hostname);\n if (mitmSocketPath) {\n logForDebugging(`Routing CONNECT ${hostname}:${port} through MITM proxy at ${mitmSocketPath}`);\n const mitmSocket = connect({ path: mitmSocketPath }, () => {\n mitmSocket.write(`CONNECT ${hostname}:${port} HTTP/1.1\\r\n` + `Host: ${hostname}:${port}\\r\n` + `\\r\n`);\n });\n let responseBuffer = \"\";\n const onMitmData = (chunk) => {\n responseBuffer += chunk.toString();\n const headerEndIndex = responseBuffer.indexOf(`\\r\n\\r\n`);\n if (headerEndIndex !== -1) {\n mitmSocket.removeListener(\"data\", onMitmData);\n const statusLine = responseBuffer.substring(0, responseBuffer.indexOf(`\\r\n`));\n if (statusLine.includes(\" 200 \")) {\n socket.write(`HTTP/1.1 200 Connection Established\\r\n\\r\n`);\n const remainingData = responseBuffer.substring(headerEndIndex + 4);\n if (remainingData.length > 0) {\n socket.write(remainingData);\n }\n mitmSocket.pipe(socket);\n socket.pipe(mitmSocket);\n } else {\n logForDebugging(`MITM proxy rejected CONNECT: ${statusLine}`, {\n level: \"error\"\n });\n socket.end(`HTTP/1.1 502 Bad Gateway\\r\n\\r\n`);\n mitmSocket.destroy();\n }\n }\n };\n mitmSocket.on(\"data\", onMitmData);\n mitmSocket.on(\"error\", (err) => {\n logForDebugging(`MITM proxy connection failed: ${err.message}`, {\n level: \"error\"\n });\n socket.end(`HTTP/1.1 502 Bad Gateway\\r\n\\r\n`);\n });\n socket.on(\"error\", (err) => {\n logForDebugging(`Client socket error: ${err.message}`, {\n level: \"error\"\n });\n mitmSocket.destroy();\n });\n socket.on(\"end\", () => mitmSocket.end());\n mitmSocket.on(\"end\", () => socket.end());\n } else {\n const serverSocket = connect(port, hostname, () => {\n socket.write(`HTTP/1.1 200 Connection Established\\r\n\\r\n`);\n serverSocket.pipe(socket);\n socket.pipe(serverSocket);\n });\n serverSocket.on(\"error\", (err) => {\n logForDebugging(`CONNECT tunnel failed: ${err.message}`, {\n level: \"error\"\n });\n socket.end(`HTTP/1.1 502 Bad Gateway\\r\n\\r\n`);\n });\n socket.on(\"error\", (err) => {\n logForDebugging(`Client socket error: ${err.message}`, {\n level: \"error\"\n });\n serverSocket.destroy();\n });\n socket.on(\"end\", () => serverSocket.end());\n serverSocket.on(\"end\", () => socket.end());\n }\n } catch (err) {\n logForDebugging(`Error handling CONNECT: ${err}`, { level: \"error\" });\n socket.end(`HTTP/1.1 500 Internal Server Error\\r\n\\r\n`);\n }\n });\n server.on(\"request\", async (req, res) => {\n try {\n const url = new URL2(req.url);\n const hostname = url.hostname;\n const port = url.port ? parseInt(url.port, 10) : url.protocol === \"https:\" ? 443 : 80;\n const allowed = await options.filter(port, hostname, req.socket);\n if (!allowed) {\n logForDebugging(`HTTP request blocked to ${hostname}:${port}`, {\n level: \"error\"\n });\n res.writeHead(403, {\n \"Content-Type\": \"text/plain\",\n \"X-Proxy-Error\": \"blocked-by-allowlist\"\n });\n res.end(\"Connection blocked by network allowlist\");\n return;\n }\n const mitmSocketPath = options.getMitmSocketPath?.(hostname);\n if (mitmSocketPath) {\n logForDebugging(`Routing HTTP ${req.method} ${hostname}:${port} through MITM proxy at ${mitmSocketPath}`);\n const mitmAgent = new Agent({\n socketPath: mitmSocketPath\n });\n const proxyReq = httpRequest({\n agent: mitmAgent,\n path: req.url,\n method: req.method,\n headers: {\n ...req.headers,\n host: url.host\n }\n }, (proxyRes) => {\n res.writeHead(proxyRes.statusCode, proxyRes.headers);\n proxyRes.pipe(res);\n });\n proxyReq.on(\"error\", (err) => {\n logForDebugging(`MITM proxy request failed: ${err.message}`, {\n level: \"error\"\n });\n if (!res.headersSent) {\n res.writeHead(502, { \"Content-Type\": \"text/plain\" });\n res.end(\"Bad Gateway\");\n }\n });\n req.pipe(proxyReq);\n } else {\n const requestFn = url.protocol === \"https:\" ? httpsRequest : httpRequest;\n const proxyReq = requestFn({\n hostname,\n port,\n path: url.pathname + url.search,\n method: req.method,\n headers: {\n ...req.headers,\n host: url.host\n }\n }, (proxyRes) => {\n res.writeHead(proxyRes.statusCode, proxyRes.headers);\n proxyRes.pipe(res);\n });\n proxyReq.on(\"error\", (err) => {\n logForDebugging(`Proxy request failed: ${err.message}`, {\n level: \"error\"\n });\n if (!res.headersSent) {\n res.writeHead(502, { \"Content-Type\": \"text/plain\" });\n res.end(\"Bad Gateway\");\n }\n });\n req.pipe(proxyReq);\n }\n } catch (err) {\n logForDebugging(`Error handling HTTP request: ${err}`, { level: \"error\" });\n res.writeHead(500, { \"Content-Type\": \"text/plain\" });\n res.end(\"Internal Server Error\");\n }\n });\n return server;\n}\nvar import_socks5_server = __toESM(require_dist(), 1);\nfunction createSocksProxyServer(options) {\n const socksServer = import_socks5_server.createServer();\n socksServer.setRulesetValidator(async (conn) => {\n try {\n const hostname = conn.destAddress;\n const port = conn.destPort;\n logForDebugging(`Connection request to ${hostname}:${port}`);\n const allowed = await options.filter(port, hostname);\n if (!allowed) {\n logForDebugging(`Connection blocked to ${hostname}:${port}`, {\n level: \"error\"\n });\n return false;\n }\n logForDebugging(`Connection allowed to ${hostname}:${port}`);\n return true;\n } catch (error) {\n logForDebugging(`Error validating connection: ${error}`, {\n level: \"error\"\n });\n return false;\n }\n });\n return {\n server: socksServer,\n getPort() {\n try {\n const serverInternal = socksServer?.server;\n if (serverInternal && typeof serverInternal?.address === \"function\") {\n const address = serverInternal.address();\n if (address && typeof address === \"object\" && \"port\" in address) {\n return address.port;\n }\n }\n } catch (error) {\n logForDebugging(`Error getting port: ${error}`, { level: \"error\" });\n }\n return;\n },\n listen(port, hostname) {\n return new Promise((resolve4, reject) => {\n const listeningCallback = () => {\n const actualPort = this.getPort();\n if (actualPort) {\n logForDebugging(`SOCKS proxy listening on ${hostname}:${actualPort}`);\n resolve4(actualPort);\n } else {\n reject(new Error(\"Failed to get SOCKS proxy server port\"));\n }\n };\n socksServer.listen(port, hostname, listeningCallback);\n });\n },\n async close() {\n return new Promise((resolve4, reject) => {\n socksServer.close((error) => {\n if (error) {\n const errorMessage = error.message?.toLowerCase() || \"\";\n const isAlreadyClosed = errorMessage.includes(\"not running\") || errorMessage.includes(\"already closed\") || errorMessage.includes(\"not listening\");\n if (!isAlreadyClosed) {\n reject(error);\n return;\n }\n }\n resolve4();\n });\n });\n },\n unref() {\n try {\n const serverInternal = socksServer?.server;\n if (serverInternal && typeof serverInternal?.unref === \"function\") {\n serverInternal.unref();\n }\n } catch (error) {\n logForDebugging(`Error calling unref: ${error}`, { level: \"error\" });\n }\n }\n };\n}\nvar freeGlobal = typeof global == \"object\" && global && global.Object === Object && global;\nvar _freeGlobal_default = freeGlobal;\nvar freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\nvar root = _freeGlobal_default || freeSelf || Function(\"return this\")();\nvar _root_default = root;\nvar Symbol2 = _root_default.Symbol;\nvar _Symbol_default = Symbol2;\nvar objectProto = Object.prototype;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nvar nativeObjectToString = objectProto.toString;\nvar symToStringTag = _Symbol_default ? _Symbol_default.toStringTag : undefined;\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\nvar _getRawTag_default = getRawTag;\nvar objectProto2 = Object.prototype;\nvar nativeObjectToString2 = objectProto2.toString;\nfunction objectToString3(value) {\n return nativeObjectToString2.call(value);\n}\nvar _objectToString_default = objectToString3;\nvar nullTag = \"[object Null]\";\nvar undefinedTag = \"[object Undefined]\";\nvar symToStringTag2 = _Symbol_default ? _Symbol_default.toStringTag : undefined;\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag2 && symToStringTag2 in Object(value) ? _getRawTag_default(value) : _objectToString_default(value);\n}\nvar _baseGetTag_default = baseGetTag;\nfunction isObjectLike(value) {\n return value != null && typeof value == \"object\";\n}\nvar isObjectLike_default = isObjectLike;\nvar isArray = Array.isArray;\nvar isArray_default = isArray;\nfunction isObject2(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\nvar isObject_default = isObject2;\nvar asyncTag = \"[object AsyncFunction]\";\nvar funcTag = \"[object Function]\";\nvar genTag = \"[object GeneratorFunction]\";\nvar proxyTag = \"[object Proxy]\";\nfunction isFunction(value) {\n if (!isObject_default(value)) {\n return false;\n }\n var tag = _baseGetTag_default(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\nvar isFunction_default = isFunction;\nvar coreJsData = _root_default[\"__core-js_shared__\"];\nvar _coreJsData_default = coreJsData;\nvar maskSrcKey = function() {\n var uid = /[^.]+$/.exec(_coreJsData_default && _coreJsData_default.keys && _coreJsData_default.keys.IE_PROTO || \"\");\n return uid ? \"Symbol(src)_1.\" + uid : \"\";\n}();\nfunction isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\nvar _isMasked_default = isMasked;\nvar funcProto = Function.prototype;\nvar funcToString = funcProto.toString;\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return func + \"\";\n } catch (e) {}\n }\n return \"\";\n}\nvar _toSource_default = toSource;\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\nvar funcProto2 = Function.prototype;\nvar objectProto3 = Object.prototype;\nvar funcToString2 = funcProto2.toString;\nvar hasOwnProperty2 = objectProto3.hasOwnProperty;\nvar reIsNative = RegExp(\"^\" + funcToString2.call(hasOwnProperty2).replace(reRegExpChar, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\");\nfunction baseIsNative(value) {\n if (!isObject_default(value) || _isMasked_default(value)) {\n return false;\n }\n var pattern = isFunction_default(value) ? reIsNative : reIsHostCtor;\n return pattern.test(_toSource_default(value));\n}\nvar _baseIsNative_default = baseIsNative;\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\nvar _getValue_default = getValue;\nfunction getNative(object, key) {\n var value = _getValue_default(object, key);\n return _baseIsNative_default(value) ? value : undefined;\n}\nvar _getNative_default = getNative;\nvar WeakMap2 = _getNative_default(_root_default, \"WeakMap\");\nvar _WeakMap_default = WeakMap2;\nvar objectCreate = Object.create;\nvar baseCreate = function() {\n function object() {}\n return function(proto) {\n if (!isObject_default(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}();\nvar _baseCreate_default = baseCreate;\nfunction copyArray(source, array) {\n var index = -1, length = source.length;\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\nvar _copyArray_default = copyArray;\nvar defineProperty = function() {\n try {\n var func = _getNative_default(Object, \"defineProperty\");\n func({}, \"\", {});\n return func;\n } catch (e) {}\n}();\nvar _defineProperty_default = defineProperty;\nfunction arrayEach(array, iteratee) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\nvar _arrayEach_default = arrayEach;\nvar MAX_SAFE_INTEGER = 9007199254740991;\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == \"number\" || type != \"symbol\" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);\n}\nvar _isIndex_default = isIndex;\nfunction baseAssignValue(object, key, value) {\n if (key == \"__proto__\" && _defineProperty_default) {\n _defineProperty_default(object, key, {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n } else {\n object[key] = value;\n }\n}\nvar _baseAssignValue_default = baseAssignValue;\nfunction eq(value, other) {\n return value === other || value !== value && other !== other;\n}\nvar eq_default = eq;\nvar objectProto4 = Object.prototype;\nvar hasOwnProperty3 = objectProto4.hasOwnProperty;\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty3.call(object, key) && eq_default(objValue, value)) || value === undefined && !(key in object)) {\n _baseAssignValue_default(object, key, value);\n }\n}\nvar _assignValue_default = assignValue;\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1, length = props.length;\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n _baseAssignValue_default(object, key, newValue);\n } else {\n _assignValue_default(object, key, newValue);\n }\n }\n return object;\n}\nvar _copyObject_default = copyObject;\nvar MAX_SAFE_INTEGER2 = 9007199254740991;\nfunction isLength(value) {\n return typeof value == \"number\" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER2;\n}\nvar isLength_default = isLength;\nfunction isArrayLike(value) {\n return value != null && isLength_default(value.length) && !isFunction_default(value);\n}\nvar isArrayLike_default = isArrayLike;\nvar objectProto5 = Object.prototype;\nfunction isPrototype(value) {\n var Ctor = value && value.constructor, proto = typeof Ctor == \"function\" && Ctor.prototype || objectProto5;\n return value === proto;\n}\nvar _isPrototype_default = isPrototype;\nfunction baseTimes(n2, iteratee) {\n var index = -1, result = Array(n2);\n while (++index < n2) {\n result[index] = iteratee(index);\n }\n return result;\n}\nvar _baseTimes_default = baseTimes;\nvar argsTag = \"[object Arguments]\";\nfunction baseIsArguments(value) {\n return isObjectLike_default(value) && _baseGetTag_default(value) == argsTag;\n}\nvar _baseIsArguments_default = baseIsArguments;\nvar objectProto6 = Object.prototype;\nvar hasOwnProperty4 = objectProto6.hasOwnProperty;\nvar propertyIsEnumerable = objectProto6.propertyIsEnumerable;\nvar isArguments = _baseIsArguments_default(function() {\n return arguments;\n}()) ? _baseIsArguments_default : function(value) {\n return isObjectLike_default(value) && hasOwnProperty4.call(value, \"callee\") && !propertyIsEnumerable.call(value, \"callee\");\n};\nvar isArguments_default = isArguments;\nvar exports_isBuffer = {};\n__export(exports_isBuffer, {\n default: () => isBuffer_default\n});\nfunction stubFalse() {\n return false;\n}\nvar stubFalse_default = stubFalse;\nvar freeExports = typeof exports_isBuffer == \"object\" && exports_isBuffer && !exports_isBuffer.nodeType && exports_isBuffer;\nvar freeModule = freeExports && typeof module_isBuffer == \"object\" && module_isBuffer && !module_isBuffer.nodeType && module_isBuffer;\nvar moduleExports = freeModule && freeModule.exports === freeExports;\nvar Buffer5 = moduleExports ? _root_default.Buffer : undefined;\nvar nativeIsBuffer = Buffer5 ? Buffer5.isBuffer : undefined;\nvar isBuffer = nativeIsBuffer || stubFalse_default;\nvar isBuffer_default = isBuffer;\nvar argsTag2 = \"[object Arguments]\";\nvar arrayTag = \"[object Array]\";\nvar boolTag = \"[object Boolean]\";\nvar dateTag = \"[object Date]\";\nvar errorTag = \"[object Error]\";\nvar funcTag2 = \"[object Function]\";\nvar mapTag = \"[object Map]\";\nvar numberTag = \"[object Number]\";\nvar objectTag = \"[object Object]\";\nvar regexpTag = \"[object RegExp]\";\nvar setTag = \"[object Set]\";\nvar stringTag = \"[object String]\";\nvar weakMapTag = \"[object WeakMap]\";\nvar arrayBufferTag = \"[object ArrayBuffer]\";\nvar dataViewTag = \"[object DataView]\";\nvar float32Tag = \"[object Float32Array]\";\nvar float64Tag = \"[object Float64Array]\";\nvar int8Tag = \"[object Int8Array]\";\nvar int16Tag = \"[object Int16Array]\";\nvar int32Tag = \"[object Int32Array]\";\nvar uint8Tag = \"[object Uint8Array]\";\nvar uint8ClampedTag = \"[object Uint8ClampedArray]\";\nvar uint16Tag = \"[object Uint16Array]\";\nvar uint32Tag = \"[object Uint32Array]\";\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag2] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag2] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\nfunction baseIsTypedArray(value) {\n return isObjectLike_default(value) && isLength_default(value.length) && !!typedArrayTags[_baseGetTag_default(value)];\n}\nvar _baseIsTypedArray_default = baseIsTypedArray;\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\nvar _baseUnary_default = baseUnary;\nvar exports__nodeUtil = {};\n__export(exports__nodeUtil, {\n default: () => _nodeUtil_default\n});\nvar freeExports2 = typeof exports__nodeUtil == \"object\" && exports__nodeUtil && !exports__nodeUtil.nodeType && exports__nodeUtil;\nvar freeModule2 = freeExports2 && typeof module__nodeUtil == \"object\" && module__nodeUtil && !module__nodeUtil.nodeType && module__nodeUtil;\nvar moduleExports2 = freeModule2 && freeModule2.exports === freeExports2;\nvar freeProcess = moduleExports2 && _freeGlobal_default.process;\nvar nodeUtil = function() {\n try {\n var types = freeModule2 && freeModule2.require && freeModule2.require(\"util\").types;\n if (types) {\n return types;\n }\n return freeProcess && freeProcess.binding && freeProcess.binding(\"util\");\n } catch (e) {}\n}();\nvar _nodeUtil_default = nodeUtil;\nvar nodeIsTypedArray = _nodeUtil_default && _nodeUtil_default.isTypedArray;\nvar isTypedArray = nodeIsTypedArray ? _baseUnary_default(nodeIsTypedArray) : _baseIsTypedArray_default;\nvar isTypedArray_default = isTypedArray;\nvar objectProto7 = Object.prototype;\nvar hasOwnProperty5 = objectProto7.hasOwnProperty;\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray_default(value), isArg = !isArr && isArguments_default(value), isBuff = !isArr && !isArg && isBuffer_default(value), isType = !isArr && !isArg && !isBuff && isTypedArray_default(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? _baseTimes_default(value.length, String) : [], length = result.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty5.call(value, key)) && !(skipIndexes && (key == \"length\" || isBuff && (key == \"offset\" || key == \"parent\") || isType && (key == \"buffer\" || key == \"byteLength\" || key == \"byteOffset\") || _isIndex_default(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\nvar _arrayLikeKeys_default = arrayLikeKeys;\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\nvar _overArg_default = overArg;\nvar nativeKeys = _overArg_default(Object.keys, Object);\nvar _nativeKeys_default = nativeKeys;\nvar objectProto8 = Object.prototype;\nvar hasOwnProperty6 = objectProto8.hasOwnProperty;\nfunction baseKeys(object) {\n if (!_isPrototype_default(object)) {\n return _nativeKeys_default(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty6.call(object, key) && key != \"constructor\") {\n result.push(key);\n }\n }\n return result;\n}\nvar _baseKeys_default = baseKeys;\nfunction keys(object) {\n return isArrayLike_default(object) ? _arrayLikeKeys_default(object) : _baseKeys_default(object);\n}\nvar keys_default = keys;\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\nvar _nativeKeysIn_default = nativeKeysIn;\nvar objectProto9 = Object.prototype;\nvar hasOwnProperty7 = objectProto9.hasOwnProperty;\nfunction baseKeysIn(object) {\n if (!isObject_default(object)) {\n return _nativeKeysIn_default(object);\n }\n var isProto = _isPrototype_default(object), result = [];\n for (var key in object) {\n if (!(key == \"constructor\" && (isProto || !hasOwnProperty7.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\nvar _baseKeysIn_default = baseKeysIn;\nfunction keysIn(object) {\n return isArrayLike_default(object) ? _arrayLikeKeys_default(object, true) : _baseKeysIn_default(object);\n}\nvar keysIn_default = keysIn;\nvar nativeCreate = _getNative_default(Object, \"create\");\nvar _nativeCreate_default = nativeCreate;\nfunction hashClear() {\n this.__data__ = _nativeCreate_default ? _nativeCreate_default(null) : {};\n this.size = 0;\n}\nvar _hashClear_default = hashClear;\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _hashDelete_default = hashDelete;\nvar HASH_UNDEFINED = \"__lodash_hash_undefined__\";\nvar objectProto10 = Object.prototype;\nvar hasOwnProperty8 = objectProto10.hasOwnProperty;\nfunction hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate_default) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty8.call(data, key) ? data[key] : undefined;\n}\nvar _hashGet_default = hashGet;\nvar objectProto11 = Object.prototype;\nvar hasOwnProperty9 = objectProto11.hasOwnProperty;\nfunction hashHas(key) {\n var data = this.__data__;\n return _nativeCreate_default ? data[key] !== undefined : hasOwnProperty9.call(data, key);\n}\nvar _hashHas_default = hashHas;\nvar HASH_UNDEFINED2 = \"__lodash_hash_undefined__\";\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = _nativeCreate_default && value === undefined ? HASH_UNDEFINED2 : value;\n return this;\n}\nvar _hashSet_default = hashSet;\nfunction Hash(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\nHash.prototype.clear = _hashClear_default;\nHash.prototype[\"delete\"] = _hashDelete_default;\nHash.prototype.get = _hashGet_default;\nHash.prototype.has = _hashHas_default;\nHash.prototype.set = _hashSet_default;\nvar _Hash_default = Hash;\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\nvar _listCacheClear_default = listCacheClear;\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq_default(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\nvar _assocIndexOf_default = assocIndexOf;\nvar arrayProto = Array.prototype;\nvar splice = arrayProto.splice;\nfunction listCacheDelete(key) {\n var data = this.__data__, index = _assocIndexOf_default(data, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\nvar _listCacheDelete_default = listCacheDelete;\nfunction listCacheGet(key) {\n var data = this.__data__, index = _assocIndexOf_default(data, key);\n return index < 0 ? undefined : data[index][1];\n}\nvar _listCacheGet_default = listCacheGet;\nfunction listCacheHas(key) {\n return _assocIndexOf_default(this.__data__, key) > -1;\n}\nvar _listCacheHas_default = listCacheHas;\nfunction listCacheSet(key, value) {\n var data = this.__data__, index = _assocIndexOf_default(data, key);\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\nvar _listCacheSet_default = listCacheSet;\nfunction ListCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\nListCache.prototype.clear = _listCacheClear_default;\nListCache.prototype[\"delete\"] = _listCacheDelete_default;\nListCache.prototype.get = _listCacheGet_default;\nListCache.prototype.has = _listCacheHas_default;\nListCache.prototype.set = _listCacheSet_default;\nvar _ListCache_default = ListCache;\nvar Map2 = _getNative_default(_root_default, \"Map\");\nvar _Map_default = Map2;\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n hash: new _Hash_default,\n map: new (_Map_default || _ListCache_default),\n string: new _Hash_default\n };\n}\nvar _mapCacheClear_default = mapCacheClear;\nfunction isKeyable(value) {\n var type = typeof value;\n return type == \"string\" || type == \"number\" || type == \"symbol\" || type == \"boolean\" ? value !== \"__proto__\" : value === null;\n}\nvar _isKeyable_default = isKeyable;\nfunction getMapData(map, key) {\n var data = map.__data__;\n return _isKeyable_default(key) ? data[typeof key == \"string\" ? \"string\" : \"hash\"] : data.map;\n}\nvar _getMapData_default = getMapData;\nfunction mapCacheDelete(key) {\n var result = _getMapData_default(this, key)[\"delete\"](key);\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _mapCacheDelete_default = mapCacheDelete;\nfunction mapCacheGet(key) {\n return _getMapData_default(this, key).get(key);\n}\nvar _mapCacheGet_default = mapCacheGet;\nfunction mapCacheHas(key) {\n return _getMapData_default(this, key).has(key);\n}\nvar _mapCacheHas_default = mapCacheHas;\nfunction mapCacheSet(key, value) {\n var data = _getMapData_default(this, key), size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\nvar _mapCacheSet_default = mapCacheSet;\nfunction MapCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\nMapCache.prototype.clear = _mapCacheClear_default;\nMapCache.prototype[\"delete\"] = _mapCacheDelete_default;\nMapCache.prototype.get = _mapCacheGet_default;\nMapCache.prototype.has = _mapCacheHas_default;\nMapCache.prototype.set = _mapCacheSet_default;\nvar _MapCache_default = MapCache;\nfunction arrayPush(array, values) {\n var index = -1, length = values.length, offset = array.length;\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\nvar _arrayPush_default = arrayPush;\nvar getPrototype = _overArg_default(Object.getPrototypeOf, Object);\nvar _getPrototype_default = getPrototype;\nfunction stackClear() {\n this.__data__ = new _ListCache_default;\n this.size = 0;\n}\nvar _stackClear_default = stackClear;\nfunction stackDelete(key) {\n var data = this.__data__, result = data[\"delete\"](key);\n this.size = data.size;\n return result;\n}\nvar _stackDelete_default = stackDelete;\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\nvar _stackGet_default = stackGet;\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\nvar _stackHas_default = stackHas;\nvar LARGE_ARRAY_SIZE = 200;\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof _ListCache_default) {\n var pairs = data.__data__;\n if (!_Map_default || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new _MapCache_default(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\nvar _stackSet_default = stackSet;\nfunction Stack(entries) {\n var data = this.__data__ = new _ListCache_default(entries);\n this.size = data.size;\n}\nStack.prototype.clear = _stackClear_default;\nStack.prototype[\"delete\"] = _stackDelete_default;\nStack.prototype.get = _stackGet_default;\nStack.prototype.has = _stackHas_default;\nStack.prototype.set = _stackSet_default;\nvar _Stack_default = Stack;\nfunction baseAssign(object, source) {\n return object && _copyObject_default(source, keys_default(source), object);\n}\nvar _baseAssign_default = baseAssign;\nfunction baseAssignIn(object, source) {\n return object && _copyObject_default(source, keysIn_default(source), object);\n}\nvar _baseAssignIn_default = baseAssignIn;\nvar exports__cloneBuffer = {};\n__export(exports__cloneBuffer, {\n default: () => _cloneBuffer_default\n});\nvar freeExports3 = typeof exports__cloneBuffer == \"object\" && exports__cloneBuffer && !exports__cloneBuffer.nodeType && exports__cloneBuffer;\nvar freeModule3 = freeExports3 && typeof module__cloneBuffer == \"object\" && module__cloneBuffer && !module__cloneBuffer.nodeType && module__cloneBuffer;\nvar moduleExports3 = freeModule3 && freeModule3.exports === freeExports3;\nvar Buffer6 = moduleExports3 ? _root_default.Buffer : undefined;\nvar allocUnsafe = Buffer6 ? Buffer6.allocUnsafe : undefined;\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n}\nvar _cloneBuffer_default = cloneBuffer;\nfunction arrayFilter(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\nvar _arrayFilter_default = arrayFilter;\nfunction stubArray() {\n return [];\n}\nvar stubArray_default = stubArray;\nvar objectProto12 = Object.prototype;\nvar propertyIsEnumerable2 = objectProto12.propertyIsEnumerable;\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\nvar getSymbols = !nativeGetSymbols ? stubArray_default : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return _arrayFilter_default(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable2.call(object, symbol);\n });\n};\nvar _getSymbols_default = getSymbols;\nfunction copySymbols(source, object) {\n return _copyObject_default(source, _getSymbols_default(source), object);\n}\nvar _copySymbols_default = copySymbols;\nvar nativeGetSymbols2 = Object.getOwnPropertySymbols;\nvar getSymbolsIn = !nativeGetSymbols2 ? stubArray_default : function(object) {\n var result = [];\n while (object) {\n _arrayPush_default(result, _getSymbols_default(object));\n object = _getPrototype_default(object);\n }\n return result;\n};\nvar _getSymbolsIn_default = getSymbolsIn;\nfunction copySymbolsIn(source, object) {\n return _copyObject_default(source, _getSymbolsIn_default(source), object);\n}\nvar _copySymbolsIn_default = copySymbolsIn;\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray_default(object) ? result : _arrayPush_default(result, symbolsFunc(object));\n}\nvar _baseGetAllKeys_default = baseGetAllKeys;\nfunction getAllKeys(object) {\n return _baseGetAllKeys_default(object, keys_default, _getSymbols_default);\n}\nvar _getAllKeys_default = getAllKeys;\nfunction getAllKeysIn(object) {\n return _baseGetAllKeys_default(object, keysIn_default, _getSymbolsIn_default);\n}\nvar _getAllKeysIn_default = getAllKeysIn;\nvar DataView = _getNative_default(_root_default, \"DataView\");\nvar _DataView_default = DataView;\nvar Promise2 = _getNative_default(_root_default, \"Promise\");\nvar _Promise_default = Promise2;\nvar Set2 = _getNative_default(_root_default, \"Set\");\nvar _Set_default = Set2;\nvar mapTag2 = \"[object Map]\";\nvar objectTag2 = \"[object Object]\";\nvar promiseTag = \"[object Promise]\";\nvar setTag2 = \"[object Set]\";\nvar weakMapTag2 = \"[object WeakMap]\";\nvar dataViewTag2 = \"[object DataView]\";\nvar dataViewCtorString = _toSource_default(_DataView_default);\nvar mapCtorString = _toSource_default(_Map_default);\nvar promiseCtorString = _toSource_default(_Promise_default);\nvar setCtorString = _toSource_default(_Set_default);\nvar weakMapCtorString = _toSource_default(_WeakMap_default);\nvar getTag = _baseGetTag_default;\nif (_DataView_default && getTag(new _DataView_default(new ArrayBuffer(1))) != dataViewTag2 || _Map_default && getTag(new _Map_default) != mapTag2 || _Promise_default && getTag(_Promise_default.resolve()) != promiseTag || _Set_default && getTag(new _Set_default) != setTag2 || _WeakMap_default && getTag(new _WeakMap_default) != weakMapTag2) {\n getTag = function(value) {\n var result = _baseGetTag_default(value), Ctor = result == objectTag2 ? value.constructor : undefined, ctorString = Ctor ? _toSource_default(Ctor) : \"\";\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag2;\n case mapCtorString:\n return mapTag2;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag2;\n case weakMapCtorString:\n return weakMapTag2;\n }\n }\n return result;\n };\n}\nvar _getTag_default = getTag;\nvar objectProto13 = Object.prototype;\nvar hasOwnProperty10 = objectProto13.hasOwnProperty;\nfunction initCloneArray(array) {\n var length = array.length, result = new array.constructor(length);\n if (length && typeof array[0] == \"string\" && hasOwnProperty10.call(array, \"index\")) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\nvar _initCloneArray_default = initCloneArray;\nvar Uint8Array2 = _root_default.Uint8Array;\nvar _Uint8Array_default = Uint8Array2;\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new _Uint8Array_default(result).set(new _Uint8Array_default(arrayBuffer));\n return result;\n}\nvar _cloneArrayBuffer_default = cloneArrayBuffer;\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? _cloneArrayBuffer_default(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\nvar _cloneDataView_default = cloneDataView;\nvar reFlags = /\\w*$/;\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\nvar _cloneRegExp_default = cloneRegExp;\nvar symbolProto = _Symbol_default ? _Symbol_default.prototype : undefined;\nvar symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\nvar _cloneSymbol_default = cloneSymbol;\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? _cloneArrayBuffer_default(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\nvar _cloneTypedArray_default = cloneTypedArray;\nvar boolTag2 = \"[object Boolean]\";\nvar dateTag2 = \"[object Date]\";\nvar mapTag3 = \"[object Map]\";\nvar numberTag2 = \"[object Number]\";\nvar regexpTag2 = \"[object RegExp]\";\nvar setTag3 = \"[object Set]\";\nvar stringTag2 = \"[object String]\";\nvar symbolTag = \"[object Symbol]\";\nvar arrayBufferTag2 = \"[object ArrayBuffer]\";\nvar dataViewTag3 = \"[object DataView]\";\nvar float32Tag2 = \"[object Float32Array]\";\nvar float64Tag2 = \"[object Float64Array]\";\nvar int8Tag2 = \"[object Int8Array]\";\nvar int16Tag2 = \"[object Int16Array]\";\nvar int32Tag2 = \"[object Int32Array]\";\nvar uint8Tag2 = \"[object Uint8Array]\";\nvar uint8ClampedTag2 = \"[object Uint8ClampedArray]\";\nvar uint16Tag2 = \"[object Uint16Array]\";\nvar uint32Tag2 = \"[object Uint32Array]\";\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag2:\n return _cloneArrayBuffer_default(object);\n case boolTag2:\n case dateTag2:\n return new Ctor(+object);\n case dataViewTag3:\n return _cloneDataView_default(object, isDeep);\n case float32Tag2:\n case float64Tag2:\n case int8Tag2:\n case int16Tag2:\n case int32Tag2:\n case uint8Tag2:\n case uint8ClampedTag2:\n case uint16Tag2:\n case uint32Tag2:\n return _cloneTypedArray_default(object, isDeep);\n case mapTag3:\n return new Ctor;\n case numberTag2:\n case stringTag2:\n return new Ctor(object);\n case regexpTag2:\n return _cloneRegExp_default(object);\n case setTag3:\n return new Ctor;\n case symbolTag:\n return _cloneSymbol_default(object);\n }\n}\nvar _initCloneByTag_default = initCloneByTag;\nfunction initCloneObject(object) {\n return typeof object.constructor == \"function\" && !_isPrototype_default(object) ? _baseCreate_default(_getPrototype_default(object)) : {};\n}\nvar _initCloneObject_default = initCloneObject;\nvar mapTag4 = \"[object Map]\";\nfunction baseIsMap(value) {\n return isObjectLike_default(value) && _getTag_default(value) == mapTag4;\n}\nvar _baseIsMap_default = baseIsMap;\nvar nodeIsMap = _nodeUtil_default && _nodeUtil_default.isMap;\nvar isMap = nodeIsMap ? _baseUnary_default(nodeIsMap) : _baseIsMap_default;\nvar isMap_default = isMap;\nvar setTag4 = \"[object Set]\";\nfunction baseIsSet(value) {\n return isObjectLike_default(value) && _getTag_default(value) == setTag4;\n}\nvar _baseIsSet_default = baseIsSet;\nvar nodeIsSet = _nodeUtil_default && _nodeUtil_default.isSet;\nvar isSet = nodeIsSet ? _baseUnary_default(nodeIsSet) : _baseIsSet_default;\nvar isSet_default = isSet;\nvar CLONE_DEEP_FLAG = 1;\nvar CLONE_FLAT_FLAG = 2;\nvar CLONE_SYMBOLS_FLAG = 4;\nvar argsTag3 = \"[object Arguments]\";\nvar arrayTag2 = \"[object Array]\";\nvar boolTag3 = \"[object Boolean]\";\nvar dateTag3 = \"[object Date]\";\nvar errorTag2 = \"[object Error]\";\nvar funcTag3 = \"[object Function]\";\nvar genTag2 = \"[object GeneratorFunction]\";\nvar mapTag5 = \"[object Map]\";\nvar numberTag3 = \"[object Number]\";\nvar objectTag3 = \"[object Object]\";\nvar regexpTag3 = \"[object RegExp]\";\nvar setTag5 = \"[object Set]\";\nvar stringTag3 = \"[object String]\";\nvar symbolTag2 = \"[object Symbol]\";\nvar weakMapTag3 = \"[object WeakMap]\";\nvar arrayBufferTag3 = \"[object ArrayBuffer]\";\nvar dataViewTag4 = \"[object DataView]\";\nvar float32Tag3 = \"[object Float32Array]\";\nvar float64Tag3 = \"[object Float64Array]\";\nvar int8Tag3 = \"[object Int8Array]\";\nvar int16Tag3 = \"[object Int16Array]\";\nvar int32Tag3 = \"[object Int32Array]\";\nvar uint8Tag3 = \"[object Uint8Array]\";\nvar uint8ClampedTag3 = \"[object Uint8ClampedArray]\";\nvar uint16Tag3 = \"[object Uint16Array]\";\nvar uint32Tag3 = \"[object Uint32Array]\";\nvar cloneableTags = {};\ncloneableTags[argsTag3] = cloneableTags[arrayTag2] = cloneableTags[arrayBufferTag3] = cloneableTags[dataViewTag4] = cloneableTags[boolTag3] = cloneableTags[dateTag3] = cloneableTags[float32Tag3] = cloneableTags[float64Tag3] = cloneableTags[int8Tag3] = cloneableTags[int16Tag3] = cloneableTags[int32Tag3] = cloneableTags[mapTag5] = cloneableTags[numberTag3] = cloneableTags[objectTag3] = cloneableTags[regexpTag3] = cloneableTags[setTag5] = cloneableTags[stringTag3] = cloneableTags[symbolTag2] = cloneableTags[uint8Tag3] = cloneableTags[uint8ClampedTag3] = cloneableTags[uint16Tag3] = cloneableTags[uint32Tag3] = true;\ncloneableTags[errorTag2] = cloneableTags[funcTag3] = cloneableTags[weakMapTag3] = false;\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject_default(value)) {\n return value;\n }\n var isArr = isArray_default(value);\n if (isArr) {\n result = _initCloneArray_default(value);\n if (!isDeep) {\n return _copyArray_default(value, result);\n }\n } else {\n var tag = _getTag_default(value), isFunc = tag == funcTag3 || tag == genTag2;\n if (isBuffer_default(value)) {\n return _cloneBuffer_default(value, isDeep);\n }\n if (tag == objectTag3 || tag == argsTag3 || isFunc && !object) {\n result = isFlat || isFunc ? {} : _initCloneObject_default(value);\n if (!isDeep) {\n return isFlat ? _copySymbolsIn_default(value, _baseAssignIn_default(result, value)) : _copySymbols_default(value, _baseAssign_default(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = _initCloneByTag_default(value, tag, isDeep);\n }\n }\n stack || (stack = new _Stack_default);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n if (isSet_default(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap_default(value)) {\n value.forEach(function(subValue, key2) {\n result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n });\n }\n var keysFunc = isFull ? isFlat ? _getAllKeysIn_default : _getAllKeys_default : isFlat ? keysIn_default : keys_default;\n var props = isArr ? undefined : keysFunc(value);\n _arrayEach_default(props || value, function(subValue, key2) {\n if (props) {\n key2 = subValue;\n subValue = value[key2];\n }\n _assignValue_default(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n });\n return result;\n}\nvar _baseClone_default = baseClone;\nvar CLONE_DEEP_FLAG2 = 1;\nvar CLONE_SYMBOLS_FLAG2 = 4;\nfunction cloneDeep(value) {\n return _baseClone_default(value, CLONE_DEEP_FLAG2 | CLONE_SYMBOLS_FLAG2);\n}\nvar cloneDeep_default = cloneDeep;\nfunction getWslVersion() {\n if (process.platform !== \"linux\") {\n return;\n }\n try {\n const procVersion = fs2.readFileSync(\"/proc/version\", { encoding: \"utf8\" });\n const wslVersionMatch = procVersion.match(/WSL(\\d+)/i);\n if (wslVersionMatch && wslVersionMatch[1]) {\n return wslVersionMatch[1];\n }\n if (procVersion.toLowerCase().includes(\"microsoft\")) {\n return \"1\";\n }\n return;\n } catch {\n return;\n }\n}\nfunction getPlatform() {\n switch (process.platform) {\n case \"darwin\":\n return \"macos\";\n case \"linux\":\n return \"linux\";\n case \"win32\":\n return \"windows\";\n default:\n return \"unknown\";\n }\n}\nvar import_shell_quote = __toESM(require_shell_quote(), 1);\nasync function ripGrep(args, target, abortSignal, config = { command: \"rg\" }) {\n const { command, args: commandArgs = [] } = config;\n return new Promise((resolve4, reject) => {\n execFile(command, [...commandArgs, ...args, target], {\n maxBuffer: 20000000,\n signal: abortSignal,\n timeout: 1e4\n }, (error, stdout, stderr) => {\n if (!error) {\n resolve4(stdout.trim().split(`\n`).filter(Boolean));\n return;\n }\n if (error.code === 1) {\n resolve4([]);\n return;\n }\n reject(new Error(`ripgrep failed with exit code ${error.code}: ${stderr || error.message}`));\n });\n });\n}\nvar DANGEROUS_FILES = [\n \".gitconfig\",\n \".gitmodules\",\n \".bashrc\",\n \".bash_profile\",\n \".zshrc\",\n \".zprofile\",\n \".profile\",\n \".ripgreprc\",\n \".mcp.json\"\n];\nvar DANGEROUS_DIRECTORIES = [\".git\", \".vscode\", \".idea\"];\nfunction getDangerousDirectories() {\n return [\n ...DANGEROUS_DIRECTORIES.filter((d) => d !== \".git\"),\n \".claude/commands\",\n \".claude/agents\"\n ];\n}\nfunction normalizeCaseForComparison(pathStr) {\n return pathStr.toLowerCase();\n}\nfunction containsGlobChars(pathPattern) {\n return pathPattern.includes(\"*\") || pathPattern.includes(\"?\") || pathPattern.includes(\"[\") || pathPattern.includes(\"]\");\n}\nfunction removeTrailingGlobSuffix(pathPattern) {\n return pathPattern.replace(/\\/\\*\\*$/, \"\");\n}\nfunction isSymlinkOutsideBoundary(originalPath, resolvedPath) {\n const normalizedOriginal = path7.normalize(originalPath);\n const normalizedResolved = path7.normalize(resolvedPath);\n if (normalizedResolved === normalizedOriginal) {\n return false;\n }\n if (normalizedOriginal.startsWith(\"/tmp/\") && normalizedResolved === \"/private\" + normalizedOriginal) {\n return false;\n }\n if (normalizedOriginal.startsWith(\"/var/\") && normalizedResolved === \"/private\" + normalizedOriginal) {\n return false;\n }\n if (normalizedOriginal.startsWith(\"/private/tmp/\") && normalizedResolved === normalizedOriginal) {\n return false;\n }\n if (normalizedOriginal.startsWith(\"/private/var/\") && normalizedResolved === normalizedOriginal) {\n return false;\n }\n if (normalizedResolved === \"/\") {\n return true;\n }\n const resolvedParts = normalizedResolved.split(\"/\").filter(Boolean);\n if (resolvedParts.length <= 1) {\n return true;\n }\n if (normalizedOriginal.startsWith(normalizedResolved + \"/\")) {\n return true;\n }\n let canonicalOriginal = normalizedOriginal;\n if (normalizedOriginal.startsWith(\"/tmp/\")) {\n canonicalOriginal = \"/private\" + normalizedOriginal;\n } else if (normalizedOriginal.startsWith(\"/var/\")) {\n canonicalOriginal = \"/private\" + normalizedOriginal;\n }\n if (canonicalOriginal !== normalizedOriginal && canonicalOriginal.startsWith(normalizedResolved + \"/\")) {\n return true;\n }\n const resolvedStartsWithOriginal = normalizedResolved.startsWith(normalizedOriginal + \"/\");\n const resolvedStartsWithCanonical = canonicalOriginal !== normalizedOriginal && normalizedResolved.startsWith(canonicalOriginal + \"/\");\n const resolvedIsCanonical = canonicalOriginal !== normalizedOriginal && normalizedResolved === canonicalOriginal;\n const resolvedIsSame = normalizedResolved === normalizedOriginal;\n if (!resolvedIsSame && !resolvedIsCanonical && !resolvedStartsWithOriginal && !resolvedStartsWithCanonical) {\n return true;\n }\n return false;\n}\nfunction normalizePathForSandbox(pathPattern) {\n const cwd = process.cwd();\n let normalizedPath = pathPattern;\n if (pathPattern === \"~\") {\n normalizedPath = homedir();\n } else if (pathPattern.startsWith(\"~/\")) {\n normalizedPath = homedir() + pathPattern.slice(1);\n } else if (pathPattern.startsWith(\"./\") || pathPattern.startsWith(\"../\")) {\n normalizedPath = path7.resolve(cwd, pathPattern);\n } else if (!path7.isAbsolute(pathPattern)) {\n normalizedPath = path7.resolve(cwd, pathPattern);\n }\n if (containsGlobChars(normalizedPath)) {\n const staticPrefix = normalizedPath.split(/[*?[\\]]/)[0];\n if (staticPrefix && staticPrefix !== \"/\") {\n const baseDir = staticPrefix.endsWith(\"/\") ? staticPrefix.slice(0, -1) : path7.dirname(staticPrefix);\n try {\n const resolvedBaseDir = fs3.realpathSync(baseDir);\n if (!isSymlinkOutsideBoundary(baseDir, resolvedBaseDir)) {\n const patternSuffix = normalizedPath.slice(baseDir.length);\n return resolvedBaseDir + patternSuffix;\n }\n } catch {}\n }\n return normalizedPath;\n }\n try {\n const resolvedPath = fs3.realpathSync(normalizedPath);\n if (isSymlinkOutsideBoundary(normalizedPath, resolvedPath)) {} else {\n normalizedPath = resolvedPath;\n }\n } catch {}\n return normalizedPath;\n}\nfunction getDefaultWritePaths() {\n const homeDir = homedir();\n const recommendedPaths = [\n \"/dev/stdout\",\n \"/dev/stderr\",\n \"/dev/null\",\n \"/dev/tty\",\n \"/dev/dtracehelper\",\n \"/dev/autofs_nowait\",\n \"/tmp/claude\",\n \"/private/tmp/claude\",\n path7.join(homeDir, \".npm/_logs\"),\n path7.join(homeDir, \".claude/debug\")\n ];\n return recommendedPaths;\n}\nfunction generateProxyEnvVars(httpProxyPort, socksProxyPort) {\n const tmpdir2 = process.env.CLAUDE_TMPDIR || \"/tmp/claude\";\n const envVars = [`SANDBOX_RUNTIME=1`, `TMPDIR=${tmpdir2}`];\n if (!httpProxyPort && !socksProxyPort) {\n return envVars;\n }\n const noProxyAddresses = [\n \"localhost\",\n \"127.0.0.1\",\n \"::1\",\n \"*.local\",\n \".local\",\n \"169.254.0.0/16\",\n \"10.0.0.0/8\",\n \"172.16.0.0/12\",\n \"192.168.0.0/16\"\n ].join(\",\");\n envVars.push(`NO_PROXY=${noProxyAddresses}`);\n envVars.push(`no_proxy=${noProxyAddresses}`);\n if (httpProxyPort) {\n envVars.push(`HTTP_PROXY=http://localhost:${httpProxyPort}`);\n envVars.push(`HTTPS_PROXY=http://localhost:${httpProxyPort}`);\n envVars.push(`http_proxy=http://localhost:${httpProxyPort}`);\n envVars.push(`https_proxy=http://localhost:${httpProxyPort}`);\n }\n if (socksProxyPort) {\n envVars.push(`ALL_PROXY=socks5h://localhost:${socksProxyPort}`);\n envVars.push(`all_proxy=socks5h://localhost:${socksProxyPort}`);\n if (getPlatform() === \"macos\") {\n envVars.push(`GIT_SSH_COMMAND=ssh -o ProxyCommand='nc -X 5 -x localhost:${socksProxyPort} %h %p'`);\n }\n envVars.push(`FTP_PROXY=socks5h://localhost:${socksProxyPort}`);\n envVars.push(`ftp_proxy=socks5h://localhost:${socksProxyPort}`);\n envVars.push(`RSYNC_PROXY=localhost:${socksProxyPort}`);\n envVars.push(`DOCKER_HTTP_PROXY=http://localhost:${httpProxyPort || socksProxyPort}`);\n envVars.push(`DOCKER_HTTPS_PROXY=http://localhost:${httpProxyPort || socksProxyPort}`);\n if (httpProxyPort) {\n envVars.push(`CLOUDSDK_PROXY_TYPE=https`);\n envVars.push(`CLOUDSDK_PROXY_ADDRESS=localhost`);\n envVars.push(`CLOUDSDK_PROXY_PORT=${httpProxyPort}`);\n }\n envVars.push(`GRPC_PROXY=socks5h://localhost:${socksProxyPort}`);\n envVars.push(`grpc_proxy=socks5h://localhost:${socksProxyPort}`);\n }\n return envVars;\n}\nfunction encodeSandboxedCommand(command) {\n const truncatedCommand = command.slice(0, 100);\n return Buffer.from(truncatedCommand).toString(\"base64\");\n}\nfunction decodeSandboxedCommand(encodedCommand) {\n return Buffer.from(encodedCommand, \"base64\").toString(\"utf8\");\n}\nvar bpfPathCache = new Map;\nvar applySeccompPathCache = new Map;\nfunction getGlobalNpmPaths() {\n const paths = [];\n try {\n const npmRoot = execSync(\"npm root -g\", {\n encoding: \"utf8\",\n timeout: 5000,\n stdio: [\"pipe\", \"pipe\", \"ignore\"]\n }).trim();\n if (npmRoot) {\n paths.push(join32(npmRoot, \"@anthropic-ai\", \"sandbox-runtime\"));\n }\n } catch {}\n const home = homedir2();\n paths.push(join32(\"/usr\", \"lib\", \"node_modules\", \"@anthropic-ai\", \"sandbox-runtime\"), join32(\"/usr\", \"local\", \"lib\", \"node_modules\", \"@anthropic-ai\", \"sandbox-runtime\"), join32(\"/opt\", \"homebrew\", \"lib\", \"node_modules\", \"@anthropic-ai\", \"sandbox-runtime\"), join32(home, \".npm\", \"lib\", \"node_modules\", \"@anthropic-ai\", \"sandbox-runtime\"), join32(home, \".npm-global\", \"lib\", \"node_modules\", \"@anthropic-ai\", \"sandbox-runtime\"));\n return paths;\n}\nfunction getVendorArchitecture() {\n const arch = process.arch;\n switch (arch) {\n case \"x64\":\n case \"x86_64\":\n return \"x64\";\n case \"arm64\":\n case \"aarch64\":\n return \"arm64\";\n case \"ia32\":\n case \"x86\":\n logForDebugging(`[SeccompFilter] 32-bit x86 (ia32) is not currently supported due to missing socketcall() syscall blocking. ` + `The current seccomp filter only blocks socket(AF_UNIX, ...), but on 32-bit x86, socketcall() can be used to bypass this.`, { level: \"error\" });\n return null;\n default:\n logForDebugging(`[SeccompFilter] Unsupported architecture: ${arch}. Only x64 and arm64 are supported.`);\n return null;\n }\n}\nfunction getLocalSeccompPaths(filename) {\n const arch = getVendorArchitecture();\n if (!arch)\n return [];\n const baseDir = dirname32(fileURLToPath3(import.meta.url));\n const relativePath = join32(\"vendor\", \"seccomp\", arch, filename);\n return [\n join32(baseDir, relativePath),\n join32(baseDir, \"..\", \"..\", relativePath),\n join32(baseDir, \"..\", relativePath)\n ];\n}\nfunction getPreGeneratedBpfPath(seccompBinaryPath) {\n const cacheKey = seccompBinaryPath ?? \"\";\n if (bpfPathCache.has(cacheKey)) {\n return bpfPathCache.get(cacheKey);\n }\n const result = findBpfPath(seccompBinaryPath);\n bpfPathCache.set(cacheKey, result);\n return result;\n}\nfunction findBpfPath(seccompBinaryPath) {\n if (seccompBinaryPath) {\n if (fs4.existsSync(seccompBinaryPath)) {\n logForDebugging(`[SeccompFilter] Using BPF filter from explicit path: ${seccompBinaryPath}`);\n return seccompBinaryPath;\n }\n logForDebugging(`[SeccompFilter] Explicit path provided but file not found: ${seccompBinaryPath}`);\n }\n const arch = getVendorArchitecture();\n if (!arch) {\n logForDebugging(`[SeccompFilter] Cannot find pre-generated BPF filter: unsupported architecture ${process.arch}`);\n return null;\n }\n logForDebugging(`[SeccompFilter] Detected architecture: ${arch}`);\n for (const bpfPath of getLocalSeccompPaths(\"unix-block.bpf\")) {\n if (fs4.existsSync(bpfPath)) {\n logForDebugging(`[SeccompFilter] Found pre-generated BPF filter: ${bpfPath} (${arch})`);\n return bpfPath;\n }\n }\n for (const globalBase of getGlobalNpmPaths()) {\n const bpfPath = join32(globalBase, \"vendor\", \"seccomp\", arch, \"unix-block.bpf\");\n if (fs4.existsSync(bpfPath)) {\n logForDebugging(`[SeccompFilter] Found pre-generated BPF filter in global install: ${bpfPath} (${arch})`);\n return bpfPath;\n }\n }\n logForDebugging(`[SeccompFilter] Pre-generated BPF filter not found in any expected location (${arch})`);\n return null;\n}\nfunction getApplySeccompBinaryPath(seccompBinaryPath) {\n const cacheKey = seccompBinaryPath ?? \"\";\n if (applySeccompPathCache.has(cacheKey)) {\n return applySeccompPathCache.get(cacheKey);\n }\n const result = findApplySeccompPath(seccompBinaryPath);\n applySeccompPathCache.set(cacheKey, result);\n return result;\n}\nfunction findApplySeccompPath(seccompBinaryPath) {\n if (seccompBinaryPath) {\n if (fs4.existsSync(seccompBinaryPath)) {\n logForDebugging(`[SeccompFilter] Using apply-seccomp binary from explicit path: ${seccompBinaryPath}`);\n return seccompBinaryPath;\n }\n logForDebugging(`[SeccompFilter] Explicit path provided but file not found: ${seccompBinaryPath}`);\n }\n const arch = getVendorArchitecture();\n if (!arch) {\n logForDebugging(`[SeccompFilter] Cannot find apply-seccomp binary: unsupported architecture ${process.arch}`);\n return null;\n }\n logForDebugging(`[SeccompFilter] Looking for apply-seccomp binary for architecture: ${arch}`);\n for (const binaryPath of getLocalSeccompPaths(\"apply-seccomp\")) {\n if (fs4.existsSync(binaryPath)) {\n logForDebugging(`[SeccompFilter] Found apply-seccomp binary: ${binaryPath} (${arch})`);\n return binaryPath;\n }\n }\n for (const globalBase of getGlobalNpmPaths()) {\n const binaryPath = join32(globalBase, \"vendor\", \"seccomp\", arch, \"apply-seccomp\");\n if (fs4.existsSync(binaryPath)) {\n logForDebugging(`[SeccompFilter] Found apply-seccomp binary in global install: ${binaryPath} (${arch})`);\n return binaryPath;\n }\n }\n logForDebugging(`[SeccompFilter] apply-seccomp binary not found in any expected location (${arch})`);\n return null;\n}\nfunction generateSeccompFilter(seccompBinaryPath) {\n const preGeneratedBpf = getPreGeneratedBpfPath(seccompBinaryPath);\n if (preGeneratedBpf) {\n logForDebugging(\"[SeccompFilter] Using pre-generated BPF filter\");\n return preGeneratedBpf;\n }\n logForDebugging(\"[SeccompFilter] Pre-generated BPF filter not available for this architecture. \" + \"Only x64 and arm64 are supported.\", { level: \"error\" });\n return null;\n}\nfunction cleanupSeccompFilter(_filterPath) {}\nvar DEFAULT_MANDATORY_DENY_SEARCH_DEPTH = 3;\nfunction findSymlinkInPath(targetPath, allowedWritePaths) {\n const parts = targetPath.split(path8.sep);\n let currentPath = \"\";\n for (const part of parts) {\n if (!part)\n continue;\n const nextPath = currentPath + path8.sep + part;\n try {\n const stats = fs5.lstatSync(nextPath);\n if (stats.isSymbolicLink()) {\n const isWithinAllowedPath = allowedWritePaths.some((allowedPath) => nextPath.startsWith(allowedPath + \"/\") || nextPath === allowedPath);\n if (isWithinAllowedPath) {\n return nextPath;\n }\n }\n } catch {\n break;\n }\n currentPath = nextPath;\n }\n return null;\n}\nfunction findFirstNonExistentComponent(targetPath) {\n const parts = targetPath.split(path8.sep);\n let currentPath = \"\";\n for (const part of parts) {\n if (!part)\n continue;\n const nextPath = currentPath + path8.sep + part;\n if (!fs5.existsSync(nextPath)) {\n return nextPath;\n }\n currentPath = nextPath;\n }\n return targetPath;\n}\nasync function linuxGetMandatoryDenyPaths(ripgrepConfig = { command: \"rg\" }, maxDepth = DEFAULT_MANDATORY_DENY_SEARCH_DEPTH, allowGitConfig = false, abortSignal) {\n const cwd = process.cwd();\n const fallbackController = new AbortController;\n const signal = abortSignal ?? fallbackController.signal;\n const dangerousDirectories = getDangerousDirectories();\n const denyPaths = [\n ...DANGEROUS_FILES.map((f) => path8.resolve(cwd, f)),\n ...dangerousDirectories.map((d) => path8.resolve(cwd, d)),\n path8.resolve(cwd, \".git/hooks\")\n ];\n if (!allowGitConfig) {\n denyPaths.push(path8.resolve(cwd, \".git/config\"));\n }\n const iglobArgs = [];\n for (const fileName of DANGEROUS_FILES) {\n iglobArgs.push(\"--iglob\", fileName);\n }\n for (const dirName of dangerousDirectories) {\n iglobArgs.push(\"--iglob\", `**/${dirName}/**`);\n }\n iglobArgs.push(\"--iglob\", \"**/.git/hooks/**\");\n if (!allowGitConfig) {\n iglobArgs.push(\"--iglob\", \"**/.git/config\");\n }\n let matches = [];\n try {\n matches = await ripGrep([\n \"--files\",\n \"--hidden\",\n \"--max-depth\",\n String(maxDepth),\n ...iglobArgs,\n \"-g\",\n \"!**/node_modules/**\"\n ], cwd, signal, ripgrepConfig);\n } catch (error) {\n logForDebugging(`[Sandbox] ripgrep scan failed: ${error}`);\n }\n for (const match of matches) {\n const absolutePath = path8.resolve(cwd, match);\n let foundDir = false;\n for (const dirName of [...dangerousDirectories, \".git\"]) {\n const normalizedDirName = normalizeCaseForComparison(dirName);\n const segments = absolutePath.split(path8.sep);\n const dirIndex = segments.findIndex((s) => normalizeCaseForComparison(s) === normalizedDirName);\n if (dirIndex !== -1) {\n if (dirName === \".git\") {\n const gitDir = segments.slice(0, dirIndex + 1).join(path8.sep);\n if (match.includes(\".git/hooks\")) {\n denyPaths.push(path8.join(gitDir, \"hooks\"));\n } else if (match.includes(\".git/config\")) {\n denyPaths.push(path8.join(gitDir, \"config\"));\n }\n } else {\n denyPaths.push(segments.slice(0, dirIndex + 1).join(path8.sep));\n }\n foundDir = true;\n break;\n }\n }\n if (!foundDir) {\n denyPaths.push(absolutePath);\n }\n }\n return [...new Set(denyPaths)];\n}\nvar generatedSeccompFilters = new Set;\nvar exitHandlerRegistered = false;\nfunction registerSeccompCleanupHandler() {\n if (exitHandlerRegistered) {\n return;\n }\n process.on(\"exit\", () => {\n for (const filterPath of generatedSeccompFilters) {\n try {\n cleanupSeccompFilter(filterPath);\n } catch {}\n }\n });\n exitHandlerRegistered = true;\n}\nfunction checkLinuxDependencies(seccompConfig) {\n const errors = [];\n const warnings = [];\n const bwrap = spawnSync2(\"which\", [\"bwrap\"], {\n stdio: \"ignore\",\n timeout: 1000\n });\n const socat = spawnSync2(\"which\", [\"socat\"], {\n stdio: \"ignore\",\n timeout: 1000\n });\n if (bwrap.status !== 0)\n errors.push(\"bubblewrap (bwrap) not installed\");\n if (socat.status !== 0)\n errors.push(\"socat not installed\");\n const hasBpf = getPreGeneratedBpfPath(seccompConfig?.bpfPath) !== null;\n const hasApply = getApplySeccompBinaryPath(seccompConfig?.applyPath) !== null;\n if (!hasBpf || !hasApply) {\n warnings.push(\"seccomp not available - unix socket access not restricted\");\n }\n return { warnings, errors };\n}\nasync function initializeLinuxNetworkBridge(httpProxyPort, socksProxyPort) {\n const socketId = randomBytes(8).toString(\"hex\");\n const httpSocketPath = join4(tmpdir(), `claude-http-${socketId}.sock`);\n const socksSocketPath = join4(tmpdir(), `claude-socks-${socketId}.sock`);\n const httpSocatArgs = [\n `UNIX-LISTEN:${httpSocketPath},fork,reuseaddr`,\n `TCP:localhost:${httpProxyPort},keepalive,keepidle=10,keepintvl=5,keepcnt=3`\n ];\n logForDebugging(`Starting HTTP bridge: socat ${httpSocatArgs.join(\" \")}`);\n const httpBridgeProcess = spawn2(\"socat\", httpSocatArgs, {\n stdio: \"ignore\"\n });\n if (!httpBridgeProcess.pid) {\n throw new Error(\"Failed to start HTTP bridge process\");\n }\n httpBridgeProcess.on(\"error\", (err) => {\n logForDebugging(`HTTP bridge process error: ${err}`, { level: \"error\" });\n });\n httpBridgeProcess.on(\"exit\", (code, signal) => {\n logForDebugging(`HTTP bridge process exited with code ${code}, signal ${signal}`, { level: code === 0 ? \"info\" : \"error\" });\n });\n const socksSocatArgs = [\n `UNIX-LISTEN:${socksSocketPath},fork,reuseaddr`,\n `TCP:localhost:${socksProxyPort},keepalive,keepidle=10,keepintvl=5,keepcnt=3`\n ];\n logForDebugging(`Starting SOCKS bridge: socat ${socksSocatArgs.join(\" \")}`);\n const socksBridgeProcess = spawn2(\"socat\", socksSocatArgs, {\n stdio: \"ignore\"\n });\n if (!socksBridgeProcess.pid) {\n if (httpBridgeProcess.pid) {\n try {\n process.kill(httpBridgeProcess.pid, \"SIGTERM\");\n } catch {}\n }\n throw new Error(\"Failed to start SOCKS bridge process\");\n }\n socksBridgeProcess.on(\"error\", (err) => {\n logForDebugging(`SOCKS bridge process error: ${err}`, { level: \"error\" });\n });\n socksBridgeProcess.on(\"exit\", (code, signal) => {\n logForDebugging(`SOCKS bridge process exited with code ${code}, signal ${signal}`, { level: code === 0 ? \"info\" : \"error\" });\n });\n const maxAttempts = 5;\n for (let i2 = 0;i2 < maxAttempts; i2++) {\n if (!httpBridgeProcess.pid || httpBridgeProcess.killed || !socksBridgeProcess.pid || socksBridgeProcess.killed) {\n throw new Error(\"Linux bridge process died unexpectedly\");\n }\n try {\n if (fs5.existsSync(httpSocketPath) && fs5.existsSync(socksSocketPath)) {\n logForDebugging(`Linux bridges ready after ${i2 + 1} attempts`);\n break;\n }\n } catch (err) {\n logForDebugging(`Error checking sockets (attempt ${i2 + 1}): ${err}`, {\n level: \"error\"\n });\n }\n if (i2 === maxAttempts - 1) {\n if (httpBridgeProcess.pid) {\n try {\n process.kill(httpBridgeProcess.pid, \"SIGTERM\");\n } catch {}\n }\n if (socksBridgeProcess.pid) {\n try {\n process.kill(socksBridgeProcess.pid, \"SIGTERM\");\n } catch {}\n }\n throw new Error(`Failed to create bridge sockets after ${maxAttempts} attempts`);\n }\n await new Promise((resolve22) => setTimeout(resolve22, i2 * 100));\n }\n return {\n httpSocketPath,\n socksSocketPath,\n httpBridgeProcess,\n socksBridgeProcess,\n httpProxyPort,\n socksProxyPort\n };\n}\nfunction buildSandboxCommand(httpSocketPath, socksSocketPath, userCommand, seccompFilterPath, shell, applySeccompPath) {\n const shellPath = shell || \"bash\";\n const socatCommands = [\n `socat TCP-LISTEN:3128,fork,reuseaddr UNIX-CONNECT:${httpSocketPath} >/dev/null 2>&1 &`,\n `socat TCP-LISTEN:1080,fork,reuseaddr UNIX-CONNECT:${socksSocketPath} >/dev/null 2>&1 &`,\n 'trap \"kill %1 %2 2>/dev/null; exit\" EXIT'\n ];\n if (seccompFilterPath) {\n const applySeccompBinary = getApplySeccompBinaryPath(applySeccompPath);\n if (!applySeccompBinary) {\n throw new Error(\"apply-seccomp binary not found. This should have been caught earlier. \" + \"Ensure vendor/seccomp/{x64,arm64}/apply-seccomp binaries are included in the package.\");\n }\n const applySeccompCmd = import_shell_quote.default.quote([\n applySeccompBinary,\n seccompFilterPath,\n shellPath,\n \"-c\",\n userCommand\n ]);\n const innerScript = [...socatCommands, applySeccompCmd].join(`\n`);\n return `${shellPath} -c ${import_shell_quote.default.quote([innerScript])}`;\n } else {\n const innerScript = [\n ...socatCommands,\n `eval ${import_shell_quote.default.quote([userCommand])}`\n ].join(`\n`);\n return `${shellPath} -c ${import_shell_quote.default.quote([innerScript])}`;\n }\n}\nasync function generateFilesystemArgs(readConfig, writeConfig, ripgrepConfig = { command: \"rg\" }, mandatoryDenySearchDepth = DEFAULT_MANDATORY_DENY_SEARCH_DEPTH, allowGitConfig = false, abortSignal) {\n const args = [];\n if (writeConfig) {\n args.push(\"--ro-bind\", \"/\", \"/\");\n const allowedWritePaths = [];\n for (const pathPattern of writeConfig.allowOnly || []) {\n const normalizedPath = normalizePathForSandbox(pathPattern);\n logForDebugging(`[Sandbox Linux] Processing write path: ${pathPattern} -> ${normalizedPath}`);\n if (normalizedPath.startsWith(\"/dev/\")) {\n logForDebugging(`[Sandbox Linux] Skipping /dev path: ${normalizedPath}`);\n continue;\n }\n if (!fs5.existsSync(normalizedPath)) {\n logForDebugging(`[Sandbox Linux] Skipping non-existent write path: ${normalizedPath}`);\n continue;\n }\n args.push(\"--bind\", normalizedPath, normalizedPath);\n allowedWritePaths.push(normalizedPath);\n }\n const denyPaths = [\n ...writeConfig.denyWithinAllow || [],\n ...await linuxGetMandatoryDenyPaths(ripgrepConfig, mandatoryDenySearchDepth, allowGitConfig, abortSignal)\n ];\n for (const pathPattern of denyPaths) {\n const normalizedPath = normalizePathForSandbox(pathPattern);\n if (normalizedPath.startsWith(\"/dev/\")) {\n continue;\n }\n const symlinkInPath = findSymlinkInPath(normalizedPath, allowedWritePaths);\n if (symlinkInPath) {\n args.push(\"--ro-bind\", \"/dev/null\", symlinkInPath);\n logForDebugging(`[Sandbox Linux] Mounted /dev/null at symlink ${symlinkInPath} to prevent symlink replacement attack`);\n continue;\n }\n if (!fs5.existsSync(normalizedPath)) {\n let ancestorPath = path8.dirname(normalizedPath);\n while (ancestorPath !== \"/\" && !fs5.existsSync(ancestorPath)) {\n ancestorPath = path8.dirname(ancestorPath);\n }\n const ancestorIsWithinAllowedPath = allowedWritePaths.some((allowedPath) => ancestorPath.startsWith(allowedPath + \"/\") || ancestorPath === allowedPath || normalizedPath.startsWith(allowedPath + \"/\"));\n if (ancestorIsWithinAllowedPath) {\n const firstNonExistent = findFirstNonExistentComponent(normalizedPath);\n args.push(\"--ro-bind\", \"/dev/null\", firstNonExistent);\n logForDebugging(`[Sandbox Linux] Mounted /dev/null at ${firstNonExistent} to block creation of ${normalizedPath}`);\n } else {\n logForDebugging(`[Sandbox Linux] Skipping non-existent deny path not within allowed paths: ${normalizedPath}`);\n }\n continue;\n }\n const isWithinAllowedPath = allowedWritePaths.some((allowedPath) => normalizedPath.startsWith(allowedPath + \"/\") || normalizedPath === allowedPath);\n if (isWithinAllowedPath) {\n args.push(\"--ro-bind\", normalizedPath, normalizedPath);\n } else {\n logForDebugging(`[Sandbox Linux] Skipping deny path not within allowed paths: ${normalizedPath}`);\n }\n }\n } else {\n args.push(\"--bind\", \"/\", \"/\");\n }\n const readDenyPaths = [...readConfig?.denyOnly || []];\n if (fs5.existsSync(\"/etc/ssh/ssh_config.d\")) {\n readDenyPaths.push(\"/etc/ssh/ssh_config.d\");\n }\n for (const pathPattern of readDenyPaths) {\n const normalizedPath = normalizePathForSandbox(pathPattern);\n if (!fs5.existsSync(normalizedPath)) {\n logForDebugging(`[Sandbox Linux] Skipping non-existent read deny path: ${normalizedPath}`);\n continue;\n }\n const readDenyStat = fs5.statSync(normalizedPath);\n if (readDenyStat.isDirectory()) {\n args.push(\"--tmpfs\", normalizedPath);\n } else {\n args.push(\"--ro-bind\", \"/dev/null\", normalizedPath);\n }\n }\n return args;\n}\nasync function wrapCommandWithSandboxLinux(params) {\n const { command, needsNetworkRestriction, httpSocketPath, socksSocketPath, httpProxyPort, socksProxyPort, readConfig, writeConfig, enableWeakerNestedSandbox, allowAllUnixSockets, binShell, ripgrepConfig = { command: \"rg\" }, mandatoryDenySearchDepth = DEFAULT_MANDATORY_DENY_SEARCH_DEPTH, allowGitConfig = false, seccompConfig, abortSignal } = params;\n const hasReadRestrictions = readConfig && readConfig.denyOnly.length > 0;\n const hasWriteRestrictions = writeConfig !== undefined;\n if (!needsNetworkRestriction && !hasReadRestrictions && !hasWriteRestrictions) {\n return command;\n }\n const bwrapArgs = [\"--new-session\", \"--die-with-parent\"];\n let seccompFilterPath = undefined;\n try {\n if (!allowAllUnixSockets) {\n seccompFilterPath = generateSeccompFilter(seccompConfig?.bpfPath) ?? undefined;\n const applySeccompBinary = getApplySeccompBinaryPath(seccompConfig?.applyPath);\n if (!seccompFilterPath || !applySeccompBinary) {\n logForDebugging(\"[Sandbox Linux] Seccomp binaries not available - unix socket blocking disabled. \" + \"Install @anthropic-ai/sandbox-runtime globally for full protection.\", { level: \"warn\" });\n seccompFilterPath = undefined;\n } else {\n if (!seccompFilterPath.includes(\"/vendor/seccomp/\")) {\n generatedSeccompFilters.add(seccompFilterPath);\n registerSeccompCleanupHandler();\n }\n logForDebugging(\"[Sandbox Linux] Generated seccomp BPF filter for Unix socket blocking\");\n }\n } else {\n logForDebugging(\"[Sandbox Linux] Skipping seccomp filter - allowAllUnixSockets is enabled\");\n }\n if (needsNetworkRestriction) {\n bwrapArgs.push(\"--unshare-net\");\n if (httpSocketPath && socksSocketPath) {\n if (!fs5.existsSync(httpSocketPath)) {\n throw new Error(`Linux HTTP bridge socket does not exist: ${httpSocketPath}. ` + \"The bridge process may have died. Try reinitializing the sandbox.\");\n }\n if (!fs5.existsSync(socksSocketPath)) {\n throw new Error(`Linux SOCKS bridge socket does not exist: ${socksSocketPath}. ` + \"The bridge process may have died. Try reinitializing the sandbox.\");\n }\n bwrapArgs.push(\"--bind\", httpSocketPath, httpSocketPath);\n bwrapArgs.push(\"--bind\", socksSocketPath, socksSocketPath);\n const proxyEnv = generateProxyEnvVars(3128, 1080);\n bwrapArgs.push(...proxyEnv.flatMap((env) => {\n const firstEq = env.indexOf(\"=\");\n const key = env.slice(0, firstEq);\n const value = env.slice(firstEq + 1);\n return [\"--setenv\", key, value];\n }));\n if (httpProxyPort !== undefined) {\n bwrapArgs.push(\"--setenv\", \"CLAUDE_CODE_HOST_HTTP_PROXY_PORT\", String(httpProxyPort));\n }\n if (socksProxyPort !== undefined) {\n bwrapArgs.push(\"--setenv\", \"CLAUDE_CODE_HOST_SOCKS_PROXY_PORT\", String(socksProxyPort));\n }\n }\n }\n const fsArgs = await generateFilesystemArgs(readConfig, writeConfig, ripgrepConfig, mandatoryDenySearchDepth, allowGitConfig, abortSignal);\n bwrapArgs.push(...fsArgs);\n bwrapArgs.push(\"--dev\", \"/dev\");\n bwrapArgs.push(\"--unshare-pid\");\n if (!enableWeakerNestedSandbox) {\n bwrapArgs.push(\"--proc\", \"/proc\");\n }\n const shellName = binShell || \"bash\";\n const shellPathResult = spawnSync2(\"which\", [shellName], {\n encoding: \"utf8\"\n });\n if (shellPathResult.status !== 0) {\n throw new Error(`Shell '${shellName}' not found in PATH`);\n }\n const shell = shellPathResult.stdout.trim();\n bwrapArgs.push(\"--\", shell, \"-c\");\n if (needsNetworkRestriction && httpSocketPath && socksSocketPath) {\n const sandboxCommand = buildSandboxCommand(httpSocketPath, socksSocketPath, command, seccompFilterPath, shell, seccompConfig?.applyPath);\n bwrapArgs.push(sandboxCommand);\n } else if (seccompFilterPath) {\n const applySeccompBinary = getApplySeccompBinaryPath(seccompConfig?.applyPath);\n if (!applySeccompBinary) {\n throw new Error(\"apply-seccomp binary not found. This should have been caught earlier. \" + \"Ensure vendor/seccomp/{x64,arm64}/apply-seccomp binaries are included in the package.\");\n }\n const applySeccompCmd = import_shell_quote.default.quote([\n applySeccompBinary,\n seccompFilterPath,\n shell,\n \"-c\",\n command\n ]);\n bwrapArgs.push(applySeccompCmd);\n } else {\n bwrapArgs.push(command);\n }\n const wrappedCommand = import_shell_quote.default.quote([\"bwrap\", ...bwrapArgs]);\n const restrictions = [];\n if (needsNetworkRestriction)\n restrictions.push(\"network\");\n if (hasReadRestrictions || hasWriteRestrictions)\n restrictions.push(\"filesystem\");\n if (seccompFilterPath)\n restrictions.push(\"seccomp(unix-block)\");\n logForDebugging(`[Sandbox Linux] Wrapped command with bwrap (${restrictions.join(\", \")} restrictions)`);\n return wrappedCommand;\n } catch (error) {\n if (seccompFilterPath && !seccompFilterPath.includes(\"/vendor/seccomp/\")) {\n generatedSeccompFilters.delete(seccompFilterPath);\n try {\n cleanupSeccompFilter(seccompFilterPath);\n } catch (cleanupError) {\n logForDebugging(`[Sandbox Linux] Failed to clean up seccomp filter on error: ${cleanupError}`, { level: \"error\" });\n }\n }\n throw error;\n }\n}\nvar import_shell_quote2 = __toESM(require_shell_quote(), 1);\nfunction macGetMandatoryDenyPatterns(allowGitConfig = false) {\n const cwd = process.cwd();\n const denyPaths = [];\n for (const fileName of DANGEROUS_FILES) {\n denyPaths.push(path9.resolve(cwd, fileName));\n denyPaths.push(`**/${fileName}`);\n }\n for (const dirName of getDangerousDirectories()) {\n denyPaths.push(path9.resolve(cwd, dirName));\n denyPaths.push(`**/${dirName}/**`);\n }\n denyPaths.push(path9.resolve(cwd, \".git/hooks\"));\n denyPaths.push(\"**/.git/hooks/**\");\n if (!allowGitConfig) {\n denyPaths.push(path9.resolve(cwd, \".git/config\"));\n denyPaths.push(\"**/.git/config\");\n }\n return [...new Set(denyPaths)];\n}\nvar sessionSuffix = `_${Math.random().toString(36).slice(2, 11)}_SBX`;\nfunction globToRegex(globPattern) {\n return \"^\" + globPattern.replace(/[.^$+{}()|\\\\]/g, \"\\\\$&\").replace(/\\[([^\\]]*?)$/g, \"\\\\[$1\").replace(/\\*\\*\\//g, \"__GLOBSTAR_SLASH__\").replace(/\\*\\*/g, \"__GLOBSTAR__\").replace(/\\*/g, \"[^/]*\").replace(/\\?/g, \"[^/]\").replace(/__GLOBSTAR_SLASH__/g, \"(.*/)?\").replace(/__GLOBSTAR__/g, \".*\") + \"$\";\n}\nfunction generateLogTag(command) {\n const encodedCommand = encodeSandboxedCommand(command);\n return `CMD64_${encodedCommand}_END_${sessionSuffix}`;\n}\nfunction getAncestorDirectories(pathStr) {\n const ancestors = [];\n let currentPath = path9.dirname(pathStr);\n while (currentPath !== \"/\" && currentPath !== \".\") {\n ancestors.push(currentPath);\n const parentPath = path9.dirname(currentPath);\n if (parentPath === currentPath) {\n break;\n }\n currentPath = parentPath;\n }\n return ancestors;\n}\nfunction generateMoveBlockingRules(pathPatterns, logTag) {\n const rules = [];\n for (const pathPattern of pathPatterns) {\n const normalizedPath = normalizePathForSandbox(pathPattern);\n if (containsGlobChars(normalizedPath)) {\n const regexPattern = globToRegex(normalizedPath);\n rules.push(`(deny file-write-unlink`, ` (regex ${escapePath(regexPattern)})`, ` (with message \"${logTag}\"))`);\n const staticPrefix = normalizedPath.split(/[*?[\\]]/)[0];\n if (staticPrefix && staticPrefix !== \"/\") {\n const baseDir = staticPrefix.endsWith(\"/\") ? staticPrefix.slice(0, -1) : path9.dirname(staticPrefix);\n rules.push(`(deny file-write-unlink`, ` (literal ${escapePath(baseDir)})`, ` (with message \"${logTag}\"))`);\n for (const ancestorDir of getAncestorDirectories(baseDir)) {\n rules.push(`(deny file-write-unlink`, ` (literal ${escapePath(ancestorDir)})`, ` (with message \"${logTag}\"))`);\n }\n }\n } else {\n rules.push(`(deny file-write-unlink`, ` (subpath ${escapePath(normalizedPath)})`, ` (with message \"${logTag}\"))`);\n for (const ancestorDir of getAncestorDirectories(normalizedPath)) {\n rules.push(`(deny file-write-unlink`, ` (literal ${escapePath(ancestorDir)})`, ` (with message \"${logTag}\"))`);\n }\n }\n }\n return rules;\n}\nfunction generateReadRules(config, logTag) {\n if (!config) {\n return [`(allow file-read*)`];\n }\n const rules = [];\n rules.push(`(allow file-read*)`);\n for (const pathPattern of config.denyOnly || []) {\n const normalizedPath = normalizePathForSandbox(pathPattern);\n if (containsGlobChars(normalizedPath)) {\n const regexPattern = globToRegex(normalizedPath);\n rules.push(`(deny file-read*`, ` (regex ${escapePath(regexPattern)})`, ` (with message \"${logTag}\"))`);\n } else {\n rules.push(`(deny file-read*`, ` (subpath ${escapePath(normalizedPath)})`, ` (with message \"${logTag}\"))`);\n }\n }\n rules.push(...generateMoveBlockingRules(config.denyOnly || [], logTag));\n return rules;\n}\nfunction generateWriteRules(config, logTag, allowGitConfig = false) {\n if (!config) {\n return [`(allow file-write*)`];\n }\n const rules = [];\n const tmpdirParents = getTmpdirParentIfMacOSPattern();\n for (const tmpdirParent of tmpdirParents) {\n const normalizedPath = normalizePathForSandbox(tmpdirParent);\n rules.push(`(allow file-write*`, ` (subpath ${escapePath(normalizedPath)})`, ` (with message \"${logTag}\"))`);\n }\n for (const pathPattern of config.allowOnly || []) {\n const normalizedPath = normalizePathForSandbox(pathPattern);\n if (containsGlobChars(normalizedPath)) {\n const regexPattern = globToRegex(normalizedPath);\n rules.push(`(allow file-write*`, ` (regex ${escapePath(regexPattern)})`, ` (with message \"${logTag}\"))`);\n } else {\n rules.push(`(allow file-write*`, ` (subpath ${escapePath(normalizedPath)})`, ` (with message \"${logTag}\"))`);\n }\n }\n const denyPaths = [\n ...config.denyWithinAllow || [],\n ...macGetMandatoryDenyPatterns(allowGitConfig)\n ];\n for (const pathPattern of denyPaths) {\n const normalizedPath = normalizePathForSandbox(pathPattern);\n if (containsGlobChars(normalizedPath)) {\n const regexPattern = globToRegex(normalizedPath);\n rules.push(`(deny file-write*`, ` (regex ${escapePath(regexPattern)})`, ` (with message \"${logTag}\"))`);\n } else {\n rules.push(`(deny file-write*`, ` (subpath ${escapePath(normalizedPath)})`, ` (with message \"${logTag}\"))`);\n }\n }\n rules.push(...generateMoveBlockingRules(denyPaths, logTag));\n return rules;\n}\nfunction generateSandboxProfile({ readConfig, writeConfig, httpProxyPort, socksProxyPort, needsNetworkRestriction, allowUnixSockets, allowAllUnixSockets, allowLocalBinding, allowPty, allowGitConfig = false, logTag }) {\n const profile = [\n \"(version 1)\",\n `(deny default (with message \"${logTag}\"))`,\n \"\",\n `; LogTag: ${logTag}`,\n \"\",\n \"; Essential permissions - based on Chrome sandbox policy\",\n \"; Process permissions\",\n \"(allow process-exec)\",\n \"(allow process-fork)\",\n \"(allow process-info* (target same-sandbox))\",\n \"(allow signal (target same-sandbox))\",\n \"(allow mach-priv-task-port (target same-sandbox))\",\n \"\",\n \"; User preferences\",\n \"(allow user-preference-read)\",\n \"\",\n \"; Mach IPC - specific services only (no wildcard)\",\n \"(allow mach-lookup\",\n ' (global-name \"com.apple.audio.systemsoundserver\")',\n ' (global-name \"com.apple.distributed_notifications@Uv3\")',\n ' (global-name \"com.apple.FontObjectsServer\")',\n ' (global-name \"com.apple.fonts\")',\n ' (global-name \"com.apple.logd\")',\n ' (global-name \"com.apple.lsd.mapdb\")',\n ' (global-name \"com.apple.PowerManagement.control\")',\n ' (global-name \"com.apple.system.logger\")',\n ' (global-name \"com.apple.system.notification_center\")',\n ' (global-name \"com.apple.trustd.agent\")',\n ' (global-name \"com.apple.system.opendirectoryd.libinfo\")',\n ' (global-name \"com.apple.system.opendirectoryd.membership\")',\n ' (global-name \"com.apple.bsd.dirhelper\")',\n ' (global-name \"com.apple.securityd.xpc\")',\n ' (global-name \"com.apple.coreservices.launchservicesd\")',\n \")\",\n \"\",\n \"; POSIX IPC - shared memory\",\n \"(allow ipc-posix-shm)\",\n \"\",\n \"; POSIX IPC - semaphores for Python multiprocessing\",\n \"(allow ipc-posix-sem)\",\n \"\",\n \"; IOKit - specific operations only\",\n \"(allow iokit-open\",\n ' (iokit-registry-entry-class \"IOSurfaceRootUserClient\")',\n ' (iokit-registry-entry-class \"RootDomainUserClient\")',\n ' (iokit-user-client-class \"IOSurfaceSendRight\")',\n \")\",\n \"\",\n \"; IOKit properties\",\n \"(allow iokit-get-properties)\",\n \"\",\n \"; Specific safe system-sockets, doesn't allow network access\",\n \"(allow system-socket (require-all (socket-domain AF_SYSTEM) (socket-protocol 2)))\",\n \"\",\n \"; sysctl - specific sysctls only\",\n \"(allow sysctl-read\",\n ' (sysctl-name \"hw.activecpu\")',\n ' (sysctl-name \"hw.busfrequency_compat\")',\n ' (sysctl-name \"hw.byteorder\")',\n ' (sysctl-name \"hw.cacheconfig\")',\n ' (sysctl-name \"hw.cachelinesize_compat\")',\n ' (sysctl-name \"hw.cpufamily\")',\n ' (sysctl-name \"hw.cpufrequency\")',\n ' (sysctl-name \"hw.cpufrequency_compat\")',\n ' (sysctl-name \"hw.cputype\")',\n ' (sysctl-name \"hw.l1dcachesize_compat\")',\n ' (sysctl-name \"hw.l1icachesize_compat\")',\n ' (sysctl-name \"hw.l2cachesize_compat\")',\n ' (sysctl-name \"hw.l3cachesize_compat\")',\n ' (sysctl-name \"hw.logicalcpu\")',\n ' (sysctl-name \"hw.logicalcpu_max\")',\n ' (sysctl-name \"hw.machine\")',\n ' (sysctl-name \"hw.memsize\")',\n ' (sysctl-name \"hw.ncpu\")',\n ' (sysctl-name \"hw.nperflevels\")',\n ' (sysctl-name \"hw.packages\")',\n ' (sysctl-name \"hw.pagesize_compat\")',\n ' (sysctl-name \"hw.pagesize\")',\n ' (sysctl-name \"hw.physicalcpu\")',\n ' (sysctl-name \"hw.physicalcpu_max\")',\n ' (sysctl-name \"hw.tbfrequency_compat\")',\n ' (sysctl-name \"hw.vectorunit\")',\n ' (sysctl-name \"kern.argmax\")',\n ' (sysctl-name \"kern.bootargs\")',\n ' (sysctl-name \"kern.hostname\")',\n ' (sysctl-name \"kern.maxfiles\")',\n ' (sysctl-name \"kern.maxfilesperproc\")',\n ' (sysctl-name \"kern.maxproc\")',\n ' (sysctl-name \"kern.ngroups\")',\n ' (sysctl-name \"kern.osproductversion\")',\n ' (sysctl-name \"kern.osrelease\")',\n ' (sysctl-name \"kern.ostype\")',\n ' (sysctl-name \"kern.osvariant_status\")',\n ' (sysctl-name \"kern.osversion\")',\n ' (sysctl-name \"kern.secure_kernel\")',\n ' (sysctl-name \"kern.tcsm_available\")',\n ' (sysctl-name \"kern.tcsm_enable\")',\n ' (sysctl-name \"kern.usrstack64\")',\n ' (sysctl-name \"kern.version\")',\n ' (sysctl-name \"kern.willshutdown\")',\n ' (sysctl-name \"machdep.cpu.brand_string\")',\n ' (sysctl-name \"machdep.ptrauth_enabled\")',\n ' (sysctl-name \"security.mac.lockdown_mode_state\")',\n ' (sysctl-name \"sysctl.proc_cputype\")',\n ' (sysctl-name \"vm.loadavg\")',\n ' (sysctl-name-prefix \"hw.optional.arm\")',\n ' (sysctl-name-prefix \"hw.optional.arm.\")',\n ' (sysctl-name-prefix \"hw.optional.armv8_\")',\n ' (sysctl-name-prefix \"hw.perflevel\")',\n ' (sysctl-name-prefix \"kern.proc.all\")',\n ' (sysctl-name-prefix \"kern.proc.pgrp.\")',\n ' (sysctl-name-prefix \"kern.proc.pid.\")',\n ' (sysctl-name-prefix \"machdep.cpu.\")',\n ' (sysctl-name-prefix \"net.routetable.\")',\n \")\",\n \"\",\n \"; V8 thread calculations\",\n \"(allow sysctl-write\",\n ' (sysctl-name \"kern.tcsm_enable\")',\n \")\",\n \"\",\n \"; Distributed notifications\",\n \"(allow distributed-notification-post)\",\n \"\",\n \"; Specific mach-lookup permissions for security operations\",\n '(allow mach-lookup (global-name \"com.apple.SecurityServer\"))',\n \"\",\n \"; File I/O on device files\",\n '(allow file-ioctl (literal \"/dev/null\"))',\n '(allow file-ioctl (literal \"/dev/zero\"))',\n '(allow file-ioctl (literal \"/dev/random\"))',\n '(allow file-ioctl (literal \"/dev/urandom\"))',\n '(allow file-ioctl (literal \"/dev/dtracehelper\"))',\n '(allow file-ioctl (literal \"/dev/tty\"))',\n \"\",\n \"(allow file-ioctl file-read-data file-write-data\",\n \" (require-all\",\n ' (literal \"/dev/null\")',\n \" (vnode-type CHARACTER-DEVICE)\",\n \" )\",\n \")\",\n \"\"\n ];\n profile.push(\"; Network\");\n if (!needsNetworkRestriction) {\n profile.push(\"(allow network*)\");\n } else {\n if (allowLocalBinding) {\n profile.push('(allow network-bind (local ip \"localhost:*\"))');\n profile.push('(allow network-inbound (local ip \"localhost:*\"))');\n profile.push('(allow network-outbound (local ip \"localhost:*\"))');\n }\n if (allowAllUnixSockets) {\n profile.push('(allow network* (subpath \"/\"))');\n } else if (allowUnixSockets && allowUnixSockets.length > 0) {\n for (const socketPath of allowUnixSockets) {\n const normalizedPath = normalizePathForSandbox(socketPath);\n profile.push(`(allow network* (subpath ${escapePath(normalizedPath)}))`);\n }\n }\n if (httpProxyPort !== undefined) {\n profile.push(`(allow network-bind (local ip \"localhost:${httpProxyPort}\"))`);\n profile.push(`(allow network-inbound (local ip \"localhost:${httpProxyPort}\"))`);\n profile.push(`(allow network-outbound (remote ip \"localhost:${httpProxyPort}\"))`);\n }\n if (socksProxyPort !== undefined) {\n profile.push(`(allow network-bind (local ip \"localhost:${socksProxyPort}\"))`);\n profile.push(`(allow network-inbound (local ip \"localhost:${socksProxyPort}\"))`);\n profile.push(`(allow network-outbound (remote ip \"localhost:${socksProxyPort}\"))`);\n }\n }\n profile.push(\"\");\n profile.push(\"; File read\");\n profile.push(...generateReadRules(readConfig, logTag));\n profile.push(\"\");\n profile.push(\"; File write\");\n profile.push(...generateWriteRules(writeConfig, logTag, allowGitConfig));\n if (allowPty) {\n profile.push(\"\");\n profile.push(\"; Pseudo-terminal (pty) support\");\n profile.push(\"(allow pseudo-tty)\");\n profile.push(\"(allow file-ioctl\");\n profile.push(' (literal \"/dev/ptmx\")');\n profile.push(' (regex #\"^/dev/ttys\")');\n profile.push(\")\");\n profile.push(\"(allow file-read* file-write*\");\n profile.push(' (literal \"/dev/ptmx\")');\n profile.push(' (regex #\"^/dev/ttys\")');\n profile.push(\")\");\n }\n return profile.join(`\n`);\n}\nfunction escapePath(pathStr) {\n return JSON.stringify(pathStr);\n}\nfunction getTmpdirParentIfMacOSPattern() {\n const tmpdir2 = process.env.TMPDIR;\n if (!tmpdir2)\n return [];\n const match = tmpdir2.match(/^\\/(private\\/)?var\\/folders\\/[^/]{2}\\/[^/]+\\/T\\/?$/);\n if (!match)\n return [];\n const parent = tmpdir2.replace(/\\/T\\/?$/, \"\");\n if (parent.startsWith(\"/private/var/\")) {\n return [parent, parent.replace(\"/private\", \"\")];\n } else if (parent.startsWith(\"/var/\")) {\n return [parent, \"/private\" + parent];\n }\n return [parent];\n}\nfunction wrapCommandWithSandboxMacOS(params) {\n const { command, needsNetworkRestriction, httpProxyPort, socksProxyPort, allowUnixSockets, allowAllUnixSockets, allowLocalBinding, readConfig, writeConfig, allowPty, allowGitConfig = false, binShell } = params;\n const hasReadRestrictions = readConfig && readConfig.denyOnly.length > 0;\n const hasWriteRestrictions = writeConfig !== undefined;\n if (!needsNetworkRestriction && !hasReadRestrictions && !hasWriteRestrictions) {\n return command;\n }\n const logTag = generateLogTag(command);\n const profile = generateSandboxProfile({\n readConfig,\n writeConfig,\n httpProxyPort,\n socksProxyPort,\n needsNetworkRestriction,\n allowUnixSockets,\n allowAllUnixSockets,\n allowLocalBinding,\n allowPty,\n allowGitConfig,\n logTag\n });\n const proxyEnvArgs = generateProxyEnvVars(httpProxyPort, socksProxyPort);\n const shellName = binShell || \"bash\";\n const shellPathResult = spawnSync3(\"which\", [shellName], { encoding: \"utf8\" });\n if (shellPathResult.status !== 0) {\n throw new Error(`Shell '${shellName}' not found in PATH`);\n }\n const shell = shellPathResult.stdout.trim();\n const wrappedCommand = import_shell_quote2.default.quote([\n \"env\",\n ...proxyEnvArgs,\n \"sandbox-exec\",\n \"-p\",\n profile,\n shell,\n \"-c\",\n command\n ]);\n logForDebugging(`[Sandbox macOS] Applied restrictions - network: ${!!(httpProxyPort || socksProxyPort)}, read: ${readConfig ? \"allowAllExcept\" in readConfig ? \"allowAllExcept\" : \"denyAllExcept\" : \"none\"}, write: ${writeConfig ? \"allowAllExcept\" in writeConfig ? \"allowAllExcept\" : \"denyAllExcept\" : \"none\"}`);\n return wrappedCommand;\n}\nfunction startMacOSSandboxLogMonitor(callback, ignoreViolations) {\n const cmdExtractRegex = /CMD64_(.+?)_END/;\n const sandboxExtractRegex = /Sandbox:\\s+(.+)$/;\n const wildcardPaths = ignoreViolations?.[\"*\"] || [];\n const commandPatterns = ignoreViolations ? Object.entries(ignoreViolations).filter(([pattern]) => pattern !== \"*\") : [];\n const logProcess = spawn3(\"log\", [\n \"stream\",\n \"--predicate\",\n `(eventMessage ENDSWITH \"${sessionSuffix}\")`,\n \"--style\",\n \"compact\"\n ]);\n logProcess.stdout?.on(\"data\", (data) => {\n const lines = data.toString().split(`\n`);\n const violationLine = lines.find((line) => line.includes(\"Sandbox:\") && line.includes(\"deny\"));\n const commandLine = lines.find((line) => line.startsWith(\"CMD64_\"));\n if (!violationLine)\n return;\n const sandboxMatch = violationLine.match(sandboxExtractRegex);\n if (!sandboxMatch?.[1])\n return;\n const violationDetails = sandboxMatch[1];\n let command;\n let encodedCommand;\n if (commandLine) {\n const cmdMatch = commandLine.match(cmdExtractRegex);\n encodedCommand = cmdMatch?.[1];\n if (encodedCommand) {\n try {\n command = decodeSandboxedCommand(encodedCommand);\n } catch {}\n }\n }\n if (violationDetails.includes(\"mDNSResponder\") || violationDetails.includes(\"mach-lookup com.apple.diagnosticd\") || violationDetails.includes(\"mach-lookup com.apple.analyticsd\")) {\n return;\n }\n if (ignoreViolations && command) {\n if (wildcardPaths.length > 0) {\n const shouldIgnore = wildcardPaths.some((path102) => violationDetails.includes(path102));\n if (shouldIgnore)\n return;\n }\n for (const [pattern, paths] of commandPatterns) {\n if (command.includes(pattern)) {\n const shouldIgnore = paths.some((path102) => violationDetails.includes(path102));\n if (shouldIgnore)\n return;\n }\n }\n }\n callback({\n line: violationDetails,\n command,\n encodedCommand,\n timestamp: new Date\n });\n });\n logProcess.stderr?.on(\"data\", (data) => {\n logForDebugging(`[Sandbox Monitor] Log stream stderr: ${data.toString()}`);\n });\n logProcess.on(\"error\", (error) => {\n logForDebugging(`[Sandbox Monitor] Failed to start log stream: ${error.message}`);\n });\n logProcess.on(\"exit\", (code) => {\n logForDebugging(`[Sandbox Monitor] Log stream exited with code: ${code}`);\n });\n return () => {\n logForDebugging(\"[Sandbox Monitor] Stopping log monitor\");\n logProcess.kill(\"SIGTERM\");\n };\n}\n\nclass SandboxViolationStore {\n constructor() {\n this.violations = [];\n this.totalCount = 0;\n this.maxSize = 100;\n this.listeners = new Set;\n }\n addViolation(violation) {\n this.violations.push(violation);\n this.totalCount++;\n if (this.violations.length > this.maxSize) {\n this.violations = this.violations.slice(-this.maxSize);\n }\n this.notifyListeners();\n }\n getViolations(limit) {\n if (limit === undefined) {\n return [...this.violations];\n }\n return this.violations.slice(-limit);\n }\n getCount() {\n return this.violations.length;\n }\n getTotalCount() {\n return this.totalCount;\n }\n getViolationsForCommand(command) {\n const commandBase64 = encodeSandboxedCommand(command);\n return this.violations.filter((v) => v.encodedCommand === commandBase64);\n }\n clear() {\n this.violations = [];\n this.notifyListeners();\n }\n subscribe(listener) {\n this.listeners.add(listener);\n listener(this.getViolations());\n return () => {\n this.listeners.delete(listener);\n };\n }\n notifyListeners() {\n const violations = this.getViolations();\n this.listeners.forEach((listener) => listener(violations));\n }\n}\nvar config;\nvar httpProxyServer;\nvar socksProxyServer;\nvar managerContext;\nvar initializationPromise;\nvar cleanupRegistered = false;\nvar logMonitorShutdown;\nvar sandboxViolationStore = new SandboxViolationStore;\nfunction registerCleanup() {\n if (cleanupRegistered) {\n return;\n }\n const cleanupHandler = () => reset2().catch((e) => {\n logForDebugging(`Cleanup failed in registerCleanup ${e}`, {\n level: \"error\"\n });\n });\n process.once(\"exit\", cleanupHandler);\n process.once(\"SIGINT\", cleanupHandler);\n process.once(\"SIGTERM\", cleanupHandler);\n cleanupRegistered = true;\n}\nfunction matchesDomainPattern(hostname, pattern) {\n if (pattern.startsWith(\"*.\")) {\n const baseDomain = pattern.substring(2);\n return hostname.toLowerCase().endsWith(\".\" + baseDomain.toLowerCase());\n }\n return hostname.toLowerCase() === pattern.toLowerCase();\n}\nasync function filterNetworkRequest(port, host, sandboxAskCallback) {\n if (!config) {\n logForDebugging(\"No config available, denying network request\");\n return false;\n }\n for (const deniedDomain of config.network.deniedDomains) {\n if (matchesDomainPattern(host, deniedDomain)) {\n logForDebugging(`Denied by config rule: ${host}:${port}`);\n return false;\n }\n }\n for (const allowedDomain of config.network.allowedDomains) {\n if (matchesDomainPattern(host, allowedDomain)) {\n logForDebugging(`Allowed by config rule: ${host}:${port}`);\n return true;\n }\n }\n if (!sandboxAskCallback) {\n logForDebugging(`No matching config rule, denying: ${host}:${port}`);\n return false;\n }\n logForDebugging(`No matching config rule, asking user: ${host}:${port}`);\n try {\n const userAllowed = await sandboxAskCallback({ host, port });\n if (userAllowed) {\n logForDebugging(`User allowed: ${host}:${port}`);\n return true;\n } else {\n logForDebugging(`User denied: ${host}:${port}`);\n return false;\n }\n } catch (error) {\n logForDebugging(`Error in permission callback: ${error}`, {\n level: \"error\"\n });\n return false;\n }\n}\nfunction getMitmSocketPath(host) {\n if (!config?.network.mitmProxy) {\n return;\n }\n const { socketPath, domains } = config.network.mitmProxy;\n for (const pattern of domains) {\n if (matchesDomainPattern(host, pattern)) {\n logForDebugging(`Host ${host} matches MITM pattern ${pattern}`);\n return socketPath;\n }\n }\n return;\n}\nasync function startHttpProxyServer(sandboxAskCallback) {\n httpProxyServer = createHttpProxyServer({\n filter: (port, host) => filterNetworkRequest(port, host, sandboxAskCallback),\n getMitmSocketPath\n });\n return new Promise((resolve32, reject) => {\n if (!httpProxyServer) {\n reject(new Error(\"HTTP proxy server undefined before listen\"));\n return;\n }\n const server = httpProxyServer;\n server.once(\"error\", reject);\n server.once(\"listening\", () => {\n const address = server.address();\n if (address && typeof address === \"object\") {\n server.unref();\n logForDebugging(`HTTP proxy listening on localhost:${address.port}`);\n resolve32(address.port);\n } else {\n reject(new Error(\"Failed to get proxy server address\"));\n }\n });\n server.listen(0, \"127.0.0.1\");\n });\n}\nasync function startSocksProxyServer(sandboxAskCallback) {\n socksProxyServer = createSocksProxyServer({\n filter: (port, host) => filterNetworkRequest(port, host, sandboxAskCallback)\n });\n return new Promise((resolve32, reject) => {\n if (!socksProxyServer) {\n reject(new Error(\"SOCKS proxy server undefined before listen\"));\n return;\n }\n socksProxyServer.listen(0, \"127.0.0.1\").then((port) => {\n socksProxyServer?.unref();\n resolve32(port);\n }).catch(reject);\n });\n}\nasync function initialize(runtimeConfig, sandboxAskCallback, enableLogMonitor = false) {\n if (initializationPromise) {\n await initializationPromise;\n return;\n }\n config = runtimeConfig;\n const deps = checkDependencies();\n if (deps.errors.length > 0) {\n throw new Error(`Sandbox dependencies not available: ${deps.errors.join(\", \")}`);\n }\n if (enableLogMonitor && getPlatform() === \"macos\") {\n logMonitorShutdown = startMacOSSandboxLogMonitor(sandboxViolationStore.addViolation.bind(sandboxViolationStore), config.ignoreViolations);\n logForDebugging(\"Started macOS sandbox log monitor\");\n }\n registerCleanup();\n initializationPromise = (async () => {\n try {\n let httpProxyPort;\n if (config.network.httpProxyPort !== undefined) {\n httpProxyPort = config.network.httpProxyPort;\n logForDebugging(`Using external HTTP proxy on port ${httpProxyPort}`);\n } else {\n httpProxyPort = await startHttpProxyServer(sandboxAskCallback);\n }\n let socksProxyPort;\n if (config.network.socksProxyPort !== undefined) {\n socksProxyPort = config.network.socksProxyPort;\n logForDebugging(`Using external SOCKS proxy on port ${socksProxyPort}`);\n } else {\n socksProxyPort = await startSocksProxyServer(sandboxAskCallback);\n }\n let linuxBridge;\n if (getPlatform() === \"linux\") {\n linuxBridge = await initializeLinuxNetworkBridge(httpProxyPort, socksProxyPort);\n }\n const context = {\n httpProxyPort,\n socksProxyPort,\n linuxBridge\n };\n managerContext = context;\n logForDebugging(\"Network infrastructure initialized\");\n return context;\n } catch (error) {\n initializationPromise = undefined;\n managerContext = undefined;\n reset2().catch((e) => {\n logForDebugging(`Cleanup failed in initializationPromise ${e}`, {\n level: \"error\"\n });\n });\n throw error;\n }\n })();\n await initializationPromise;\n}\nfunction isSupportedPlatform() {\n const platform2 = getPlatform();\n if (platform2 === \"linux\") {\n return getWslVersion() !== \"1\";\n }\n return platform2 === \"macos\";\n}\nfunction isSandboxingEnabled() {\n return config !== undefined;\n}\nfunction checkDependencies(ripgrepConfig) {\n if (!isSupportedPlatform()) {\n return { errors: [\"Unsupported platform\"], warnings: [] };\n }\n const errors = [];\n const warnings = [];\n const rgToCheck = ripgrepConfig ?? config?.ripgrep ?? { command: \"rg\" };\n const rgResult = spawnSync4(\"which\", [rgToCheck.command], {\n stdio: \"ignore\",\n timeout: 1000\n });\n if (rgResult.status !== 0) {\n errors.push(`ripgrep (${rgToCheck.command}) not found`);\n }\n const platform2 = getPlatform();\n if (platform2 === \"linux\") {\n const linuxDeps = checkLinuxDependencies(config?.seccomp);\n errors.push(...linuxDeps.errors);\n warnings.push(...linuxDeps.warnings);\n }\n return { errors, warnings };\n}\nfunction getFsReadConfig() {\n if (!config) {\n return { denyOnly: [] };\n }\n const denyPaths = config.filesystem.denyRead.map((path102) => removeTrailingGlobSuffix(path102)).filter((path102) => {\n if (getPlatform() === \"linux\" && containsGlobChars(path102)) {\n logForDebugging(`Skipping glob pattern on Linux/WSL: ${path102}`);\n return false;\n }\n return true;\n });\n return {\n denyOnly: denyPaths\n };\n}\nfunction getFsWriteConfig() {\n if (!config) {\n return { allowOnly: getDefaultWritePaths(), denyWithinAllow: [] };\n }\n const allowPaths = config.filesystem.allowWrite.map((path102) => removeTrailingGlobSuffix(path102)).filter((path102) => {\n if (getPlatform() === \"linux\" && containsGlobChars(path102)) {\n logForDebugging(`Skipping glob pattern on Linux/WSL: ${path102}`);\n return false;\n }\n return true;\n });\n const denyPaths = config.filesystem.denyWrite.map((path102) => removeTrailingGlobSuffix(path102)).filter((path102) => {\n if (getPlatform() === \"linux\" && containsGlobChars(path102)) {\n logForDebugging(`Skipping glob pattern on Linux/WSL: ${path102}`);\n return false;\n }\n return true;\n });\n const allowOnly = [...getDefaultWritePaths(), ...allowPaths];\n return {\n allowOnly,\n denyWithinAllow: denyPaths\n };\n}\nfunction getNetworkRestrictionConfig() {\n if (!config) {\n return {};\n }\n const allowedHosts = config.network.allowedDomains;\n const deniedHosts = config.network.deniedDomains;\n return {\n ...allowedHosts.length > 0 && { allowedHosts },\n ...deniedHosts.length > 0 && { deniedHosts }\n };\n}\nfunction getAllowUnixSockets() {\n return config?.network?.allowUnixSockets;\n}\nfunction getAllowAllUnixSockets() {\n return config?.network?.allowAllUnixSockets;\n}\nfunction getAllowLocalBinding() {\n return config?.network?.allowLocalBinding;\n}\nfunction getIgnoreViolations() {\n return config?.ignoreViolations;\n}\nfunction getEnableWeakerNestedSandbox() {\n return config?.enableWeakerNestedSandbox;\n}\nfunction getRipgrepConfig() {\n return config?.ripgrep ?? { command: \"rg\" };\n}\nfunction getMandatoryDenySearchDepth() {\n return config?.mandatoryDenySearchDepth ?? 3;\n}\nfunction getAllowGitConfig() {\n return config?.filesystem?.allowGitConfig ?? false;\n}\nfunction getSeccompConfig() {\n return config?.seccomp;\n}\nfunction getProxyPort() {\n return managerContext?.httpProxyPort;\n}\nfunction getSocksProxyPort() {\n return managerContext?.socksProxyPort;\n}\nfunction getLinuxHttpSocketPath() {\n return managerContext?.linuxBridge?.httpSocketPath;\n}\nfunction getLinuxSocksSocketPath() {\n return managerContext?.linuxBridge?.socksSocketPath;\n}\nasync function waitForNetworkInitialization() {\n if (!config) {\n return false;\n }\n if (initializationPromise) {\n try {\n await initializationPromise;\n return true;\n } catch {\n return false;\n }\n }\n return managerContext !== undefined;\n}\nasync function wrapWithSandbox(command, binShell, customConfig, abortSignal) {\n const platform2 = getPlatform();\n const userAllowWrite = customConfig?.filesystem?.allowWrite ?? config?.filesystem.allowWrite ?? [];\n const writeConfig = {\n allowOnly: [...getDefaultWritePaths(), ...userAllowWrite],\n denyWithinAllow: customConfig?.filesystem?.denyWrite ?? config?.filesystem.denyWrite ?? []\n };\n const readConfig = {\n denyOnly: customConfig?.filesystem?.denyRead ?? config?.filesystem.denyRead ?? []\n };\n const hasNetworkConfig = customConfig?.network?.allowedDomains !== undefined || config?.network?.allowedDomains !== undefined;\n const needsNetworkRestriction = hasNetworkConfig;\n const needsNetworkProxy = hasNetworkConfig;\n if (needsNetworkProxy) {\n await waitForNetworkInitialization();\n }\n const allowPty = customConfig?.allowPty ?? config?.allowPty;\n switch (platform2) {\n case \"macos\":\n return wrapCommandWithSandboxMacOS({\n command,\n needsNetworkRestriction,\n httpProxyPort: needsNetworkProxy ? getProxyPort() : undefined,\n socksProxyPort: needsNetworkProxy ? getSocksProxyPort() : undefined,\n readConfig,\n writeConfig,\n allowUnixSockets: getAllowUnixSockets(),\n allowAllUnixSockets: getAllowAllUnixSockets(),\n allowLocalBinding: getAllowLocalBinding(),\n ignoreViolations: getIgnoreViolations(),\n allowPty,\n allowGitConfig: getAllowGitConfig(),\n binShell\n });\n case \"linux\":\n return wrapCommandWithSandboxLinux({\n command,\n needsNetworkRestriction,\n httpSocketPath: needsNetworkProxy ? getLinuxHttpSocketPath() : undefined,\n socksSocketPath: needsNetworkProxy ? getLinuxSocksSocketPath() : undefined,\n httpProxyPort: needsNetworkProxy ? managerContext?.httpProxyPort : undefined,\n socksProxyPort: needsNetworkProxy ? managerContext?.socksProxyPort : undefined,\n readConfig,\n writeConfig,\n enableWeakerNestedSandbox: getEnableWeakerNestedSandbox(),\n allowAllUnixSockets: getAllowAllUnixSockets(),\n binShell,\n ripgrepConfig: getRipgrepConfig(),\n mandatoryDenySearchDepth: getMandatoryDenySearchDepth(),\n allowGitConfig: getAllowGitConfig(),\n seccompConfig: getSeccompConfig(),\n abortSignal\n });\n default:\n throw new Error(`Sandbox configuration is not supported on platform: ${platform2}`);\n }\n}\nfunction getConfig() {\n return config;\n}\nfunction updateConfig(newConfig) {\n config = cloneDeep_default(newConfig);\n logForDebugging(\"Sandbox configuration updated\");\n}\nasync function reset2() {\n if (logMonitorShutdown) {\n logMonitorShutdown();\n logMonitorShutdown = undefined;\n }\n if (managerContext?.linuxBridge) {\n const { httpSocketPath, socksSocketPath, httpBridgeProcess, socksBridgeProcess } = managerContext.linuxBridge;\n const exitPromises = [];\n if (httpBridgeProcess.pid && !httpBridgeProcess.killed) {\n try {\n process.kill(httpBridgeProcess.pid, \"SIGTERM\");\n logForDebugging(\"Sent SIGTERM to HTTP bridge process\");\n exitPromises.push(new Promise((resolve32) => {\n httpBridgeProcess.once(\"exit\", () => {\n logForDebugging(\"HTTP bridge process exited\");\n resolve32();\n });\n setTimeout(() => {\n if (!httpBridgeProcess.killed) {\n logForDebugging(\"HTTP bridge did not exit, forcing SIGKILL\", {\n level: \"warn\"\n });\n try {\n if (httpBridgeProcess.pid) {\n process.kill(httpBridgeProcess.pid, \"SIGKILL\");\n }\n } catch {}\n }\n resolve32();\n }, 5000);\n }));\n } catch (err) {\n if (err.code !== \"ESRCH\") {\n logForDebugging(`Error killing HTTP bridge: ${err}`, {\n level: \"error\"\n });\n }\n }\n }\n if (socksBridgeProcess.pid && !socksBridgeProcess.killed) {\n try {\n process.kill(socksBridgeProcess.pid, \"SIGTERM\");\n logForDebugging(\"Sent SIGTERM to SOCKS bridge process\");\n exitPromises.push(new Promise((resolve32) => {\n socksBridgeProcess.once(\"exit\", () => {\n logForDebugging(\"SOCKS bridge process exited\");\n resolve32();\n });\n setTimeout(() => {\n if (!socksBridgeProcess.killed) {\n logForDebugging(\"SOCKS bridge did not exit, forcing SIGKILL\", {\n level: \"warn\"\n });\n try {\n if (socksBridgeProcess.pid) {\n process.kill(socksBridgeProcess.pid, \"SIGKILL\");\n }\n } catch {}\n }\n resolve32();\n }, 5000);\n }));\n } catch (err) {\n if (err.code !== \"ESRCH\") {\n logForDebugging(`Error killing SOCKS bridge: ${err}`, {\n level: \"error\"\n });\n }\n }\n }\n await Promise.all(exitPromises);\n if (httpSocketPath) {\n try {\n fs6.rmSync(httpSocketPath, { force: true });\n logForDebugging(\"Cleaned up HTTP socket\");\n } catch (err) {\n logForDebugging(`HTTP socket cleanup error: ${err}`, {\n level: \"error\"\n });\n }\n }\n if (socksSocketPath) {\n try {\n fs6.rmSync(socksSocketPath, { force: true });\n logForDebugging(\"Cleaned up SOCKS socket\");\n } catch (err) {\n logForDebugging(`SOCKS socket cleanup error: ${err}`, {\n level: \"error\"\n });\n }\n }\n }\n const closePromises = [];\n if (httpProxyServer) {\n const server = httpProxyServer;\n const httpClose = new Promise((resolve32) => {\n server.close((error) => {\n if (error && error.message !== \"Server is not running.\") {\n logForDebugging(`Error closing HTTP proxy server: ${error.message}`, {\n level: \"error\"\n });\n }\n resolve32();\n });\n });\n closePromises.push(httpClose);\n }\n if (socksProxyServer) {\n const socksClose = socksProxyServer.close().catch((error) => {\n logForDebugging(`Error closing SOCKS proxy server: ${error.message}`, {\n level: \"error\"\n });\n });\n closePromises.push(socksClose);\n }\n await Promise.all(closePromises);\n httpProxyServer = undefined;\n socksProxyServer = undefined;\n managerContext = undefined;\n initializationPromise = undefined;\n}\nfunction getSandboxViolationStore() {\n return sandboxViolationStore;\n}\nfunction annotateStderrWithSandboxFailures(command, stderr) {\n if (!config) {\n return stderr;\n }\n const violations = sandboxViolationStore.getViolationsForCommand(command);\n if (violations.length === 0) {\n return stderr;\n }\n let annotated = stderr;\n annotated += EOL + \"<sandbox_violations>\" + EOL;\n for (const violation of violations) {\n annotated += violation.line + EOL;\n }\n annotated += \"</sandbox_violations>\";\n return annotated;\n}\nfunction getLinuxGlobPatternWarnings() {\n if (getPlatform() !== \"linux\" || !config) {\n return [];\n }\n const globPatterns = [];\n const allPaths = [\n ...config.filesystem.denyRead,\n ...config.filesystem.allowWrite,\n ...config.filesystem.denyWrite\n ];\n for (const path102 of allPaths) {\n const pathWithoutTrailingStar = removeTrailingGlobSuffix(path102);\n if (containsGlobChars(pathWithoutTrailingStar)) {\n globPatterns.push(path102);\n }\n }\n return globPatterns;\n}\nvar SandboxManager = {\n initialize,\n isSupportedPlatform,\n isSandboxingEnabled,\n checkDependencies,\n getFsReadConfig,\n getFsWriteConfig,\n getNetworkRestrictionConfig,\n getAllowUnixSockets,\n getAllowLocalBinding,\n getIgnoreViolations,\n getEnableWeakerNestedSandbox,\n getProxyPort,\n getSocksProxyPort,\n getLinuxHttpSocketPath,\n getLinuxSocksSocketPath,\n waitForNetworkInitialization,\n wrapWithSandbox,\n reset: reset2,\n getSandboxViolationStore,\n annotateStderrWithSandboxFailures,\n getLinuxGlobPatternWarnings,\n getConfig,\n updateConfig\n};\nvar exports_external = {};\n__export(exports_external, {\n void: () => voidType,\n util: () => util,\n unknown: () => unknownType,\n union: () => unionType,\n undefined: () => undefinedType,\n tuple: () => tupleType,\n transformer: () => effectsType,\n symbol: () => symbolType,\n string: () => stringType,\n strictObject: () => strictObjectType,\n setErrorMap: () => setErrorMap,\n set: () => setType,\n record: () => recordType,\n quotelessJson: () => quotelessJson,\n promise: () => promiseType,\n preprocess: () => preprocessType,\n pipeline: () => pipelineType,\n ostring: () => ostring,\n optional: () => optionalType,\n onumber: () => onumber,\n oboolean: () => oboolean,\n objectUtil: () => objectUtil,\n object: () => objectType,\n number: () => numberType,\n nullable: () => nullableType,\n null: () => nullType,\n never: () => neverType,\n nativeEnum: () => nativeEnumType,\n nan: () => nanType,\n map: () => mapType,\n makeIssue: () => makeIssue,\n literal: () => literalType,\n lazy: () => lazyType,\n late: () => late,\n isValid: () => isValid,\n isDirty: () => isDirty,\n isAsync: () => isAsync,\n isAborted: () => isAborted,\n intersection: () => intersectionType,\n instanceof: () => instanceOfType,\n getParsedType: () => getParsedType,\n getErrorMap: () => getErrorMap,\n function: () => functionType,\n enum: () => enumType,\n effect: () => effectsType,\n discriminatedUnion: () => discriminatedUnionType,\n defaultErrorMap: () => en_default,\n datetimeRegex: () => datetimeRegex,\n date: () => dateType,\n custom: () => custom,\n coerce: () => coerce,\n boolean: () => booleanType,\n bigint: () => bigIntType,\n array: () => arrayType,\n any: () => anyType,\n addIssueToContext: () => addIssueToContext,\n ZodVoid: () => ZodVoid,\n ZodUnknown: () => ZodUnknown,\n ZodUnion: () => ZodUnion,\n ZodUndefined: () => ZodUndefined,\n ZodType: () => ZodType,\n ZodTuple: () => ZodTuple,\n ZodTransformer: () => ZodEffects,\n ZodSymbol: () => ZodSymbol,\n ZodString: () => ZodString,\n ZodSet: () => ZodSet,\n ZodSchema: () => ZodType,\n ZodRecord: () => ZodRecord,\n ZodReadonly: () => ZodReadonly,\n ZodPromise: () => ZodPromise,\n ZodPipeline: () => ZodPipeline,\n ZodParsedType: () => ZodParsedType,\n ZodOptional: () => ZodOptional,\n ZodObject: () => ZodObject,\n ZodNumber: () => ZodNumber,\n ZodNullable: () => ZodNullable,\n ZodNull: () => ZodNull,\n ZodNever: () => ZodNever,\n ZodNativeEnum: () => ZodNativeEnum,\n ZodNaN: () => ZodNaN,\n ZodMap: () => ZodMap,\n ZodLiteral: () => ZodLiteral,\n ZodLazy: () => ZodLazy,\n ZodIssueCode: () => ZodIssueCode,\n ZodIntersection: () => ZodIntersection,\n ZodFunction: () => ZodFunction,\n ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind,\n ZodError: () => ZodError,\n ZodEnum: () => ZodEnum,\n ZodEffects: () => ZodEffects,\n ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,\n ZodDefault: () => ZodDefault,\n ZodDate: () => ZodDate,\n ZodCatch: () => ZodCatch,\n ZodBranded: () => ZodBranded,\n ZodBoolean: () => ZodBoolean,\n ZodBigInt: () => ZodBigInt,\n ZodArray: () => ZodArray,\n ZodAny: () => ZodAny,\n Schema: () => ZodType,\n ParseStatus: () => ParseStatus,\n OK: () => OK,\n NEVER: () => NEVER,\n INVALID: () => INVALID,\n EMPTY_PATH: () => EMPTY_PATH,\n DIRTY: () => DIRTY,\n BRAND: () => BRAND\n});\nvar util;\n(function(util2) {\n util2.assertEqual = (_) => {};\n function assertIs(_arg) {}\n util2.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error;\n }\n util2.assertNever = assertNever;\n util2.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util2.getValidEnumValues = (obj) => {\n const validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util2.objectValues(filtered);\n };\n util2.objectValues = (obj) => {\n return util2.objectKeys(obj).map(function(e) {\n return obj[e];\n });\n };\n util2.objectKeys = typeof Object.keys === \"function\" ? (obj) => Object.keys(obj) : (object) => {\n const keys2 = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys2.push(key);\n }\n }\n return keys2;\n };\n util2.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return;\n };\n util2.isInteger = typeof Number.isInteger === \"function\" ? (val) => Number.isInteger(val) : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => typeof val === \"string\" ? `'${val}'` : val).join(separator);\n }\n util2.joinValues = joinValues;\n util2.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function(objectUtil2) {\n objectUtil2.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second\n };\n };\n})(objectUtil || (objectUtil = {}));\nvar ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\"\n]);\nvar getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\nvar ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\"\n]);\nvar quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\n\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(this, actualProto);\n } else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper || function(issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n } else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n } else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n } else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n } else {\n let curr = fieldErrors;\n let i2 = 0;\n while (i2 < issue.path.length) {\n const el = issue.path[i2];\n const terminal = i2 === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n } else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i2++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n } else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\nvar errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n } else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n } else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n } else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n } else {\n util.assertNever(issue.validation);\n }\n } else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n } else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nvar en_default = errorMap;\nvar overrideErrorMap = en_default;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\nvar makeIssue = (params) => {\n const { data, path: path102, errorMaps, issueData } = params;\n const fullPath = [...path102, ...issueData.path || []];\n const fullIssue = {\n ...issueData,\n path: fullPath\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps.filter((m) => !!m).slice().reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage\n };\n};\nvar EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n overrideMap,\n overrideMap === en_default ? undefined : en_default\n ].filter((x) => !!x)\n });\n ctx.common.issues.push(issue);\n}\n\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nvar INVALID = Object.freeze({\n status: \"aborted\"\n});\nvar DIRTY = (value) => ({ status: \"dirty\", value });\nvar OK = (value) => ({ status: \"valid\", value });\nvar isAborted = (x) => x.status === \"aborted\";\nvar isDirty = (x) => x.status === \"dirty\";\nvar isValid = (x) => x.status === \"valid\";\nvar isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\nvar errorUtil;\n(function(errorUtil2) {\n errorUtil2.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil2.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path102, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path102;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n } else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nvar handleResult2 = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n } else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n }\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap: errorMap2, invalid_type_error, required_error, description } = params;\n if (errorMap2 && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap2)\n return { errorMap: errorMap2, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\n\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent\n };\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus,\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent\n }\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult2(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result) ? {\n value: result.value\n } : {\n issues: ctx.common.issues\n };\n } catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) ? {\n value: result.value\n } : {\n issues: ctx.common.issues\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult2(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n } else if (typeof message === \"function\") {\n return message(val);\n } else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val)\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n } else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n } else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n } else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement }\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data)\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform }\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def)\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nvar cuidRegex = /^c[^\\s-]{8,}$/i;\nvar cuid2Regex = /^[0-9a-z]+$/;\nvar ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\nvar uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nvar nanoidRegex = /^[a-z0-9_-]{21}$/i;\nvar jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nvar durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\nvar emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\nvar _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nvar emojiRegex;\nvar ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nvar ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\nvar ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nvar ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\nvar base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\nvar base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\nvar dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nvar dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n } else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\";\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n const base64 = header.replace(/-/g, \"+\").replace(/_/g, \"/\").padEnd(header.length + (4 - header.length % 4) % 4, \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n } catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\n\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n const status = new ParseStatus;\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message\n });\n } else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message\n });\n }\n status.dirty();\n }\n } else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n } catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n } else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n } else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n } else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message)\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message)\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message)\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message)\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex,\n ...errorUtil.errToObj(message)\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message)\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value,\n ...errorUtil.errToObj(message)\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value,\n ...errorUtil.errToObj(message)\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message)\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message)\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message)\n });\n }\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }]\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }]\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }]\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params)\n });\n};\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return valInt % stepInt / 10 ** decCount;\n}\n\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus;\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message)\n }\n ]\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message)\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message)\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message)\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message)\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message)\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || ch.kind === \"multipleOf\" && util.isInteger(ch.value));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n } else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n } else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params)\n });\n};\n\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n } catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message)\n }\n ]\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message)\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params)\n });\n};\n\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params)\n });\n};\n\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_date\n });\n return INVALID;\n }\n const status = new ParseStatus;\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\"\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\"\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime())\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message)\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message)\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params)\n });\n};\n\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params)\n });\n};\n\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params)\n });\n};\n\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params)\n });\n};\n\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params)\n });\n};\n\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params)\n });\n};\n\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params)\n });\n};\n\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params)\n });\n};\n\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: tooSmall ? def.exactLength.value : undefined,\n maximum: tooBig ? def.exactLength.value : undefined,\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i2) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i2));\n })).then((result2) => {\n return ParseStatus.mergeArray(status, result2);\n });\n }\n const result = [...ctx.data].map((item, i2) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i2));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) }\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) }\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) }\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params)\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape\n });\n } else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element)\n });\n } else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n } else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n } else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n } else {\n return schema;\n }\n}\n\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n this.nonstrict = this.passthrough;\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys2 = util.objectKeys(shape);\n this._cached = { shape, keys: keys2 };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] }\n });\n }\n } else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys\n });\n status.dirty();\n }\n } else if (unknownKeys === \"strip\") {} else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n } else {\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve().then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet\n });\n }\n return syncPairs;\n }).then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n } else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...message !== undefined ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError\n };\n return {\n message: defaultError\n };\n }\n } : {}\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\"\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\"\n });\n }\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation\n })\n });\n }\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape()\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject\n });\n return merged;\n }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape\n });\n }\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n } else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n } else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\n\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n },\n parent: null\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx\n }),\n ctx: childCtx\n };\n })).then(handleResults);\n } else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n },\n parent: null\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx\n });\n if (result.status === \"valid\") {\n return result;\n } else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues2) => new ZodError(issues2));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params)\n });\n};\nvar getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n } else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n } else if (type instanceof ZodLiteral) {\n return [type.value];\n } else if (type instanceof ZodEnum) {\n return type.options;\n } else if (type instanceof ZodNativeEnum) {\n return util.objectValues(type.enum);\n } else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n } else if (type instanceof ZodUndefined) {\n return [undefined];\n } else if (type instanceof ZodNull) {\n return [null];\n } else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n } else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n } else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n } else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n } else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n } else {\n return [];\n }\n};\n\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator]\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n } else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n static create(discriminator, options, params) {\n const optionsMap = new Map;\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params)\n });\n }\n}\nfunction mergeValues(a2, b) {\n const aType = getParsedType(a2);\n const bType = getParsedType(b);\n if (a2 === b) {\n return { valid: true, data: a2 };\n } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a2).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a2, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a2[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a2.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0;index < a2.length; index++) {\n const itemA = a2[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a2 === +b) {\n return { valid: true, data: a2 };\n } else {\n return { valid: false };\n }\n}\n\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n })\n ]).then(([left, right]) => handleParsed(left, right));\n } else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left,\n right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params)\n });\n};\n\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\"\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\"\n });\n status.dirty();\n }\n const items = [...ctx.data].map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n }).filter((x) => !!x);\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n } else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params)\n });\n};\n\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n } else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third)\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second)\n });\n }\n}\n\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"]))\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map;\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n } else {\n const finalMap = new Map;\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params)\n });\n};\n\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements2) {\n const parsedSet = new Set;\n for (const element of elements2) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i2) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i2)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements2) => finalizeSet(elements2));\n } else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) }\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) }\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params)\n });\n};\n\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), en_default].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error\n }\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), en_default].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error\n }\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n const me = this;\n return OK(async function(...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n } else {\n const me = this;\n return OK(function(...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create())\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params)\n });\n }\n}\n\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params)\n });\n};\n\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params)\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params)\n });\n}\n\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef\n });\n }\n}\nZodEnum.create = createZodEnum;\n\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params)\n });\n};\n\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params)\n });\n};\n\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n } else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n }\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed2) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed2,\n path: ctx.path,\n parent: ctx\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n } else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n } else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n } else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params)\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params)\n });\n};\n\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params)\n });\n};\n\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params)\n });\n};\n\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params)\n });\n};\n\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n }\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx\n }\n });\n if (isAsync(result)) {\n return result.then((result2) => {\n return {\n status: \"valid\",\n value: result2.status === \"valid\" ? result2.value : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data\n })\n };\n });\n } else {\n return {\n status: \"valid\",\n value: result.status === \"valid\" ? result.value : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data\n })\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params)\n });\n};\n\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params)\n });\n};\nvar BRAND = Symbol(\"zod_brand\");\n\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\n\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n } else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx\n });\n }\n };\n return handleAsync();\n } else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value\n };\n } else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n }\n static create(a2, b) {\n return new ZodPipeline({\n in: a2,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline\n });\n }\n}\n\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params)\n });\n};\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nfunction custom(check, _params = {}, fatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r2) => {\n if (!r2) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nvar late = {\n object: ZodObject.lazycreate\n};\nvar ZodFirstPartyTypeKind;\n(function(ZodFirstPartyTypeKind2) {\n ZodFirstPartyTypeKind2[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind2[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind2[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind2[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind2[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind2[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind2[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind2[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind2[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind2[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind2[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind2[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind2[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind2[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind2[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind2[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind2[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind2[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind2[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind2[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind2[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind2[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind2[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind2[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind2[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind2[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind2[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind2[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind2[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind2[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind2[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind2[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind2[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind2[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind2[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind2[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nvar instanceOfType = (cls, params = {\n message: `Input not instance of ${cls.name}`\n}) => custom((data) => data instanceof cls, params);\nvar stringType = ZodString.create;\nvar numberType = ZodNumber.create;\nvar nanType = ZodNaN.create;\nvar bigIntType = ZodBigInt.create;\nvar booleanType = ZodBoolean.create;\nvar dateType = ZodDate.create;\nvar symbolType = ZodSymbol.create;\nvar undefinedType = ZodUndefined.create;\nvar nullType = ZodNull.create;\nvar anyType = ZodAny.create;\nvar unknownType = ZodUnknown.create;\nvar neverType = ZodNever.create;\nvar voidType = ZodVoid.create;\nvar arrayType = ZodArray.create;\nvar objectType = ZodObject.create;\nvar strictObjectType = ZodObject.strictCreate;\nvar unionType = ZodUnion.create;\nvar discriminatedUnionType = ZodDiscriminatedUnion.create;\nvar intersectionType = ZodIntersection.create;\nvar tupleType = ZodTuple.create;\nvar recordType = ZodRecord.create;\nvar mapType = ZodMap.create;\nvar setType = ZodSet.create;\nvar functionType = ZodFunction.create;\nvar lazyType = ZodLazy.create;\nvar literalType = ZodLiteral.create;\nvar enumType = ZodEnum.create;\nvar nativeEnumType = ZodNativeEnum.create;\nvar promiseType = ZodPromise.create;\nvar effectsType = ZodEffects.create;\nvar optionalType = ZodOptional.create;\nvar nullableType = ZodNullable.create;\nvar preprocessType = ZodEffects.createWithPreprocess;\nvar pipelineType = ZodPipeline.create;\nvar ostring = () => stringType().optional();\nvar onumber = () => numberType().optional();\nvar oboolean = () => booleanType().optional();\nvar coerce = {\n string: (arg) => ZodString.create({ ...arg, coerce: true }),\n number: (arg) => ZodNumber.create({ ...arg, coerce: true }),\n boolean: (arg) => ZodBoolean.create({\n ...arg,\n coerce: true\n }),\n bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }),\n date: (arg) => ZodDate.create({ ...arg, coerce: true })\n};\nvar NEVER = INVALID;\nvar domainPatternSchema = exports_external.string().refine((val) => {\n if (val.includes(\"://\") || val.includes(\"/\") || val.includes(\":\")) {\n return false;\n }\n if (val === \"localhost\")\n return true;\n if (val.startsWith(\"*.\")) {\n const domain = val.slice(2);\n if (!domain.includes(\".\") || domain.startsWith(\".\") || domain.endsWith(\".\")) {\n return false;\n }\n const parts = domain.split(\".\");\n return parts.length >= 2 && parts.every((p) => p.length > 0);\n }\n if (val.includes(\"*\")) {\n return false;\n }\n return val.includes(\".\") && !val.startsWith(\".\") && !val.endsWith(\".\");\n}, {\n message: 'Invalid domain pattern. Must be a valid domain (e.g., \"example.com\") or wildcard (e.g., \"*.example.com\"). Overly broad patterns like \"*.com\" or \"*\" are not allowed for security reasons.'\n});\nvar filesystemPathSchema = exports_external.string().min(1, \"Path cannot be empty\");\nvar MitmProxyConfigSchema = exports_external.object({\n socketPath: exports_external.string().min(1).describe(\"Unix socket path to the MITM proxy\"),\n domains: exports_external.array(domainPatternSchema).min(1).describe('Domains to route through the MITM proxy (e.g., [\"api.example.com\", \"*.internal.org\"])')\n});\nvar NetworkConfigSchema = exports_external.object({\n allowedDomains: exports_external.array(domainPatternSchema).describe('List of allowed domains (e.g., [\"github.com\", \"*.npmjs.org\"])'),\n deniedDomains: exports_external.array(domainPatternSchema).describe(\"List of denied domains\"),\n allowUnixSockets: exports_external.array(exports_external.string()).optional().describe(\"macOS only: Unix socket paths to allow. Ignored on Linux (seccomp cannot filter by path).\"),\n allowAllUnixSockets: exports_external.boolean().optional().describe(\"If true, allow all Unix sockets (disables blocking on both platforms).\"),\n allowLocalBinding: exports_external.boolean().optional().describe(\"Whether to allow binding to local ports (default: false)\"),\n httpProxyPort: exports_external.number().int().min(1).max(65535).optional().describe(\"Port of an external HTTP proxy to use instead of starting a local one. When provided, the library will skip starting its own HTTP proxy and use this port. The external proxy must handle domain filtering.\"),\n socksProxyPort: exports_external.number().int().min(1).max(65535).optional().describe(\"Port of an external SOCKS proxy to use instead of starting a local one. When provided, the library will skip starting its own SOCKS proxy and use this port. The external proxy must handle domain filtering.\"),\n mitmProxy: MitmProxyConfigSchema.optional().describe(\"Optional MITM proxy configuration. Routes matching domains through an upstream proxy via Unix socket while SRT still handles allow/deny filtering.\")\n});\nvar FilesystemConfigSchema = exports_external.object({\n denyRead: exports_external.array(filesystemPathSchema).describe(\"Paths denied for reading\"),\n allowWrite: exports_external.array(filesystemPathSchema).describe(\"Paths allowed for writing\"),\n denyWrite: exports_external.array(filesystemPathSchema).describe(\"Paths denied for writing (takes precedence over allowWrite)\"),\n allowGitConfig: exports_external.boolean().optional().describe(\"Allow writes to .git/config files (default: false). Enables git remote URL updates while keeping .git/hooks protected.\")\n});\nvar IgnoreViolationsConfigSchema = exports_external.record(exports_external.string(), exports_external.array(exports_external.string())).describe('Map of command patterns to filesystem paths to ignore violations for. Use \"*\" to match all commands');\nvar RipgrepConfigSchema = exports_external.object({\n command: exports_external.string().describe('The ripgrep command to execute (e.g., \"rg\", \"claude\")'),\n args: exports_external.array(exports_external.string()).optional().describe('Additional arguments to pass before ripgrep args (e.g., [\"--ripgrep\"])')\n});\nvar SeccompConfigSchema = exports_external.object({\n bpfPath: exports_external.string().optional().describe(\"Path to the unix-block.bpf filter file\"),\n applyPath: exports_external.string().optional().describe(\"Path to the apply-seccomp binary\")\n});\nvar SandboxRuntimeConfigSchema = exports_external.object({\n network: NetworkConfigSchema.describe(\"Network restrictions configuration\"),\n filesystem: FilesystemConfigSchema.describe(\"Filesystem restrictions configuration\"),\n ignoreViolations: IgnoreViolationsConfigSchema.optional().describe(\"Optional configuration for ignoring specific violations\"),\n enableWeakerNestedSandbox: exports_external.boolean().optional().describe(\"Enable weaker nested sandbox mode (for Docker environments)\"),\n ripgrep: RipgrepConfigSchema.optional().describe('Custom ripgrep configuration (default: { command: \"rg\" })'),\n mandatoryDenySearchDepth: exports_external.number().int().min(1).max(10).optional().describe(\"Maximum directory depth to search for dangerous files on Linux (default: 3). \" + \"Higher values provide more protection but slower performance.\"),\n allowPty: exports_external.boolean().optional().describe(\"Allow pseudo-terminal (pty) operations (macOS only)\"),\n seccomp: SeccompConfigSchema.optional().describe(\"Custom seccomp binary paths (Linux only).\")\n});\n\nclass SrtIsolator extends Isolator {\n workDir;\n initialized = false;\n constructor(runtime) {\n super(runtime);\n this.workDir = path10.join(process.cwd(), \".sandbox\", `session-${Date.now()}`);\n }\n async ensureInitialized() {\n if (this.initialized)\n return;\n if (!SandboxManager.isSupportedPlatform()) {\n throw new ExecutionError(\"SRT sandbox is not supported on this platform. Supported: macOS, Linux\");\n }\n const deps = SandboxManager.checkDependencies();\n if (deps.errors.length > 0) {\n const missing = deps.errors.join(\", \");\n throw new ExecutionError(`SRT sandbox dependencies missing: ${missing}\n` + `Install with:\n` + ` macOS: brew install ripgrep\n` + \" Linux: apt install ripgrep bubblewrap socat\");\n }\n await SandboxManager.initialize({\n network: {\n allowedDomains: [],\n deniedDomains: []\n },\n filesystem: {\n denyRead: [\"~/.ssh\", \"~/.gnupg\", \"~/.aws\", \"~/.config/gcloud\"],\n allowWrite: [this.workDir, \"/tmp\"],\n denyWrite: []\n }\n });\n this.initialized = true;\n }\n async shell(command, options = {}) {\n const { timeout = 30000, env = {} } = options;\n return this.runCommand(command, timeout, env);\n }\n async execute(code, options = {}) {\n const { timeout = 30000, env = {} } = options;\n const command = this.buildExecuteCommand(code);\n const result = await this.runCommand(command, timeout, env);\n if (!result.success) {\n throw new ExecutionError(result.stderr || `Execution failed with exit code ${result.exitCode}`);\n }\n return result;\n }\n async evaluate(expr, options = {}) {\n const { timeout = 30000, env = {} } = options;\n const command = this.buildEvaluateCommand(expr);\n const result = await this.runCommand(command, timeout, env);\n if (!result.success) {\n throw new ExecutionError(result.stderr || `Evaluation failed with exit code ${result.exitCode}`);\n }\n return {\n value: result.stdout.trim(),\n executionTime: result.executionTime\n };\n }\n buildExecuteCommand(code) {\n const escapedCode = code.replace(/'/g, \"'\\\\''\");\n switch (this.runtime) {\n case \"node\":\n return `node -e '${escapedCode}'`;\n case \"python\":\n return `python3 -c '${escapedCode}'`;\n default:\n throw new ExecutionError(`Unknown runtime: ${this.runtime}`);\n }\n }\n buildEvaluateCommand(expr) {\n const escapedExpr = expr.replace(/'/g, \"'\\\\''\");\n switch (this.runtime) {\n case \"node\":\n return `node -p '${escapedExpr}'`;\n case \"python\":\n return `python3 -c 'print(${escapedExpr})'`;\n default:\n throw new ExecutionError(`Unknown runtime: ${this.runtime}`);\n }\n }\n async runCommand(command, timeout, env) {\n const startTime = Date.now();\n await this.ensureInitialized();\n await fs7.mkdir(this.workDir, { recursive: true });\n try {\n const wrappedCommand = await SandboxManager.wrapWithSandbox(command, \"/bin/sh\");\n const result = await execa(\"sh\", [\"-c\", wrappedCommand], {\n cwd: this.workDir,\n env: { ...process.env, ...env },\n timeout,\n maxBuffer: 10 * 1024 * 1024,\n reject: false,\n all: true\n });\n return {\n success: result.exitCode === 0,\n stdout: result.stdout || \"\",\n stderr: result.stderr || \"\",\n exitCode: result.exitCode ?? 0,\n executionTime: Date.now() - startTime\n };\n } catch (error) {\n if (error && typeof error === \"object\" && \"timedOut\" in error && error.timedOut) {\n throw new TimeoutError(`Execution timed out after ${timeout}ms`);\n }\n throw new ExecutionError(`Command execution failed: ${error.message}`);\n }\n }\n async upload(data, remotePath) {\n try {\n const fullPath = path10.join(this.workDir, remotePath);\n await fs7.mkdir(path10.dirname(fullPath), { recursive: true });\n await fs7.writeFile(fullPath, data);\n } catch (error) {\n throw new FileSystemError(`Failed to upload file: ${error.message}`);\n }\n }\n async download(remotePath) {\n try {\n const fullPath = path10.join(this.workDir, remotePath);\n return await fs7.readFile(fullPath);\n } catch (error) {\n throw new FileSystemError(`Failed to download file: ${error.message}`);\n }\n }\n async destroy() {\n try {\n if (this.initialized) {\n await SandboxManager.reset();\n this.initialized = false;\n }\n await fs7.rm(this.workDir, { recursive: true, force: true });\n } catch {}\n }\n}\nvar require2 = createRequire2(import.meta.url);\n\nclass CloudflareContainerIsolator extends Isolator {\n serverProcess;\n serverUrl;\n isReady = false;\n constructor(runtime) {\n super(runtime);\n }\n async findFreePort() {\n return new Promise((resolve32, reject) => {\n const server = createServer3();\n server.listen(0, () => {\n const port = server.address().port;\n server.close(() => resolve32(port));\n });\n server.on(\"error\", reject);\n });\n }\n getBinaryPath() {\n try {\n return require2.resolve(\"@sandboxxjs/cloudflare-isolator\");\n } catch {\n throw new ExecutionError(\"@sandboxxjs/cloudflare-isolator not found. Run: bun install\");\n }\n }\n async waitForReady(url, maxAttempts = 30) {\n for (let i2 = 0;i2 < maxAttempts; i2++) {\n try {\n const response = await fetch(`${url}/health`);\n if (response.ok) {\n return;\n }\n } catch {}\n await new Promise((resolve32) => setTimeout(resolve32, 1000));\n }\n throw new ExecutionError(\"Server failed to start after 30 seconds\");\n }\n async ensureServerRunning() {\n if (this.isReady)\n return;\n const port = await this.findFreePort();\n this.serverUrl = `http://localhost:${port}`;\n const cliPath = this.getBinaryPath();\n this.serverProcess = spawn4(\"node\", [cliPath], {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n env: { ...process.env, PORT: String(port) }\n });\n this.serverProcess.stdout?.on(\"data\", () => {});\n this.serverProcess.stderr?.on(\"data\", (data) => {\n console.error(`[cloudflare-isolator] ${data.toString().trim()}`);\n });\n await this.waitForReady(this.serverUrl);\n this.isReady = true;\n }\n async shell(command, options = {}) {\n const { timeout = 30000, env = {} } = options;\n return this.callServer(command, \"shell\", timeout, env);\n }\n async execute(code, options = {}) {\n const { timeout = 30000, env = {} } = options;\n const result = await this.callServer(code, \"execute\", timeout, env);\n if (!result.success) {\n throw new ExecutionError(result.stderr || `Execution failed with exit code ${result.exitCode}`);\n }\n return result;\n }\n async evaluate(expr, options = {}) {\n const { timeout = 30000, env = {} } = options;\n const result = await this.callServer(expr, \"evaluate\", timeout, env);\n if (!result.success) {\n throw new ExecutionError(result.stderr || `Evaluation failed with exit code ${result.exitCode}`);\n }\n return {\n value: result.stdout.trim(),\n executionTime: result.executionTime\n };\n }\n async callServer(code, mode, timeout, env) {\n const startTime = Date.now();\n await this.ensureServerRunning();\n try {\n const response = await fetch(`${this.serverUrl}/execute`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n code,\n mode,\n runtime: this.runtime,\n env,\n timeout\n })\n });\n if (!response.ok) {\n const error = await response.text();\n throw new ExecutionError(`Server execution failed: ${error}`);\n }\n const result = await response.json();\n return {\n success: result.success,\n stdout: result.stdout || \"\",\n stderr: result.stderr || \"\",\n exitCode: result.exitCode ?? (result.success ? 0 : 1),\n executionTime: Date.now() - startTime\n };\n } catch (error) {\n if (error instanceof ExecutionError)\n throw error;\n throw new ExecutionError(`Server call failed: ${error.message}`);\n }\n }\n async upload(_data, _remotePath) {\n throw new FileSystemError(\"Upload not yet implemented for CloudflareContainerIsolator\");\n }\n async download(_remotePath) {\n throw new FileSystemError(\"Download not yet implemented for CloudflareContainerIsolator\");\n }\n async destroy() {\n if (this.serverProcess) {\n this.serverProcess.kill();\n this.serverProcess = undefined;\n }\n this.isReady = false;\n this.serverUrl = undefined;\n }\n}\n\nclass BaseSandbox {\n id;\n isolator;\n config;\n constructor(config2) {\n this.id = `sandbox-${nanoid()}`;\n this.config = config2;\n this.isolator = this.createIsolator(config2);\n }\n createIsolator(config2) {\n const { isolator: isolatorType, runtime } = config2;\n switch (isolatorType) {\n case \"none\":\n return new NoneIsolator(runtime);\n case \"srt\":\n return new SrtIsolator(runtime);\n case \"cloudflare\":\n return new CloudflareContainerIsolator(runtime);\n case \"e2b\":\n throw new SandboxError(`Isolator \"e2b\" not yet implemented`);\n default:\n throw new SandboxError(`Unknown isolator type: ${isolatorType}`);\n }\n }\n async shell(command) {\n return this.isolator.shell(command, {\n timeout: this.config.limits?.timeout\n });\n }\n async execute(code) {\n return this.isolator.execute(code, {\n timeout: this.config.limits?.timeout\n });\n }\n async evaluate(expr) {\n return this.isolator.evaluate(expr, {\n timeout: this.config.limits?.timeout\n });\n }\n async upload(data, remotePath) {\n return this.isolator.upload(data, remotePath);\n }\n async download(remotePath) {\n return this.isolator.download(remotePath);\n }\n async destroy() {\n return this.isolator.destroy();\n }\n}\nvar __require2 = /* @__PURE__ */ createRequire3(import.meta.url);\n\nclass StateError extends Error {\n constructor(message) {\n super(message);\n this.name = \"StateError\";\n }\n}\n\nclass FileSystemError2 extends StateError {\n constructor(message) {\n super(message);\n this.name = \"FileSystemError\";\n }\n}\n\nclass StateFS {\n sandbox;\n constructor(sandbox) {\n this.sandbox = sandbox;\n }\n async read(path11) {\n const result = await this.sandbox.shell(`cat \"${path11}\"`);\n if (!result.success) {\n throw new FileSystemError2(`Failed to read file: ${path11}`);\n }\n return result.stdout;\n }\n async write(path11, data) {\n const dir = path11.substring(0, path11.lastIndexOf(\"/\"));\n if (dir) {\n await this.sandbox.shell(`mkdir -p \"${dir}\"`);\n }\n const result = await this.sandbox.shell(`cat > \"${path11}\" << 'SANDBOX_EOF'\n${data}\nSANDBOX_EOF`);\n if (!result.success) {\n throw new FileSystemError2(`Failed to write file: ${path11}`);\n }\n }\n async exists(path11) {\n const result = await this.sandbox.shell(`test -e \"${path11}\" && echo \"yes\" || echo \"no\"`);\n return result.stdout.trim() === \"yes\";\n }\n async delete(path11) {\n await this.sandbox.shell(`rm -rf \"${path11}\"`);\n }\n async list(path11) {\n const result = await this.sandbox.shell(`ls -1 \"${path11}\" 2>/dev/null`);\n if (!result.success || !result.stdout.trim()) {\n return [];\n }\n return result.stdout.trim().split(`\n`).filter(Boolean);\n }\n}\n\nclass StateEnv {\n vars;\n constructor(initial) {\n this.vars = new Map(Object.entries(initial ?? {}));\n }\n get(key) {\n return this.vars.get(key);\n }\n set(key, value) {\n this.vars.set(key, value);\n }\n has(key) {\n return this.vars.has(key);\n }\n delete(key) {\n this.vars.delete(key);\n }\n keys() {\n return [...this.vars.keys()];\n }\n all() {\n return Object.fromEntries(this.vars);\n }\n}\n\nclass StateStorage {\n data;\n constructor(initial) {\n this.data = new Map(Object.entries(initial ?? {}));\n }\n getItem(key) {\n return this.data.get(key) ?? null;\n }\n setItem(key, value) {\n this.data.set(key, value);\n }\n removeItem(key) {\n this.data.delete(key);\n }\n clear() {\n this.data.clear();\n }\n keys() {\n return [...this.data.keys()];\n }\n}\n\nclass StateLog {\n entries = [];\n fs = {\n write: (path11, data) => {\n this.entries.push({ op: \"fs.write\", args: { path: path11, data } });\n return this;\n },\n delete: (path11) => {\n this.entries.push({ op: \"fs.delete\", args: { path: path11 } });\n return this;\n }\n };\n env = {\n set: (key, value) => {\n this.entries.push({ op: \"env.set\", args: { key, value } });\n return this;\n },\n delete: (key) => {\n this.entries.push({ op: \"env.delete\", args: { key } });\n return this;\n }\n };\n storage = {\n set: (key, value) => {\n this.entries.push({ op: \"storage.set\", args: { key, value } });\n return this;\n },\n delete: (key) => {\n this.entries.push({ op: \"storage.delete\", args: { key } });\n return this;\n },\n clear: () => {\n this.entries.push({ op: \"storage.clear\", args: {} });\n return this;\n }\n };\n recordEntry(op, args) {\n this.entries.push({ op, args });\n return this;\n }\n getEntries() {\n return [...this.entries];\n }\n toJSON() {\n return [...this.entries];\n }\n static fromJSON(json) {\n const log = new StateLog;\n log.entries = typeof json === \"string\" ? JSON.parse(json) : [...json];\n return log;\n }\n static fromEntries(entries) {\n const log = new StateLog;\n log.entries = [...entries];\n return log;\n }\n compact() {\n const fsState = new Map;\n const envState = new Map;\n const storageState = new Map;\n let storageClear = null;\n for (const entry of this.entries) {\n const { op, args } = entry;\n if (op === \"fs.write\") {\n fsState.set(args.path, entry);\n } else if (op === \"fs.delete\") {\n fsState.set(args.path, entry);\n } else if (op === \"env.set\") {\n envState.set(args.key, entry);\n } else if (op === \"env.delete\") {\n envState.set(args.key, entry);\n } else if (op === \"storage.set\") {\n storageState.set(args.key, entry);\n } else if (op === \"storage.delete\") {\n storageState.set(args.key, entry);\n } else if (op === \"storage.clear\") {\n storageClear = entry;\n storageState.clear();\n }\n }\n const compactedEntries = [];\n for (const entry of fsState.values()) {\n compactedEntries.push(entry);\n }\n for (const entry of envState.values()) {\n compactedEntries.push(entry);\n }\n if (storageClear) {\n compactedEntries.push(storageClear);\n }\n for (const entry of storageState.values()) {\n compactedEntries.push(entry);\n }\n return StateLog.fromEntries(compactedEntries);\n }\n}\nfunction buildStateLog() {\n return new StateLog;\n}\nfunction loadStateLog(json) {\n return StateLog.fromJSON(json);\n}\nvar opRegistry = {\n \"fs.write\": {\n namespace: \"fs\",\n method: \"write\",\n args: [\"path\", \"data\"],\n replay: async (target, args) => {\n await target.fs.write(args.path, args.data);\n }\n },\n \"fs.delete\": {\n namespace: \"fs\",\n method: \"delete\",\n args: [\"path\"],\n replay: async (target, args) => {\n await target.fs.delete(args.path);\n }\n },\n \"env.set\": {\n namespace: \"env\",\n method: \"set\",\n args: [\"key\", \"value\"],\n replay: (target, args) => {\n target.env.set(args.key, args.value);\n }\n },\n \"env.delete\": {\n namespace: \"env\",\n method: \"delete\",\n args: [\"key\"],\n replay: (target, args) => {\n target.env.delete(args.key);\n }\n },\n \"storage.set\": {\n namespace: \"storage\",\n method: \"setItem\",\n args: [\"key\", \"value\"],\n replay: (target, args) => {\n target.storage.setItem(args.key, args.value);\n }\n },\n \"storage.delete\": {\n namespace: \"storage\",\n method: \"removeItem\",\n args: [\"key\"],\n replay: (target, args) => {\n target.storage.removeItem(args.key);\n }\n },\n \"storage.clear\": {\n namespace: \"storage\",\n method: \"clear\",\n args: [],\n replay: (target) => {\n target.storage.clear();\n }\n }\n};\nfunction findOp(namespace, method) {\n for (const [op, config2] of Object.entries(opRegistry)) {\n if (config2.namespace === namespace && config2.method === method) {\n return op;\n }\n }\n return;\n}\nfunction argsToEntry(op, methodArgs) {\n const config2 = opRegistry[op];\n if (!config2)\n return {};\n const entry = {};\n config2.args.forEach((name, index) => {\n entry[name] = methodArgs[index];\n });\n return entry;\n}\nfunction replayStateLogSync(log, target) {\n for (const entry of log.getEntries()) {\n const config2 = opRegistry[entry.op];\n if (config2 && config2.namespace !== \"fs\") {\n config2.replay(target, entry.args);\n }\n }\n}\nasync function replayStateLogFs(log, target) {\n for (const entry of log.getEntries()) {\n const config2 = opRegistry[entry.op];\n if (config2 && config2.namespace === \"fs\") {\n await config2.replay(target, entry.args);\n }\n }\n}\n\nclass ResourceXError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\n\nclass ParseError extends ResourceXError {\n url;\n constructor(message, url) {\n super(message);\n this.url = url;\n this.name = \"ParseError\";\n }\n}\n\nclass TransportError extends ResourceXError {\n transport;\n constructor(message, transport, options) {\n super(message, options);\n this.transport = transport;\n this.name = \"TransportError\";\n }\n}\n\nclass SemanticError extends ResourceXError {\n semantic;\n constructor(message, semantic, options) {\n super(message, options);\n this.semantic = semantic;\n this.name = \"SemanticError\";\n }\n}\nfunction parseARP(url) {\n if (!url.startsWith(\"arp:\")) {\n throw new ParseError(`Invalid ARP URL: must start with \"arp:\"`, url);\n }\n const content = url.substring(4);\n const separatorIndex = content.indexOf(\"://\");\n if (separatorIndex === -1) {\n throw new ParseError(`Invalid ARP URL: missing \"://\"`, url);\n }\n const typePart = content.substring(0, separatorIndex);\n const location = content.substring(separatorIndex + 3);\n const colonIndex = typePart.indexOf(\":\");\n if (colonIndex === -1) {\n throw new ParseError(`Invalid ARP URL: must have exactly 2 types (semantic:transport)`, url);\n }\n const semantic = typePart.substring(0, colonIndex);\n const transport = typePart.substring(colonIndex + 1);\n if (!semantic) {\n throw new ParseError(`Invalid ARP URL: semantic type cannot be empty`, url);\n }\n if (!transport) {\n throw new ParseError(`Invalid ARP URL: transport type cannot be empty`, url);\n }\n if (!location) {\n throw new ParseError(`Invalid ARP URL: location cannot be empty`, url);\n }\n return { semantic, transport, location };\n}\n\nclass HttpTransportHandler {\n name;\n protocol;\n capabilities = {\n canRead: true,\n canWrite: false,\n canList: false,\n canDelete: false,\n canStat: false\n };\n constructor(protocol = \"https\") {\n this.protocol = protocol;\n this.name = protocol;\n }\n async read(location) {\n const url = `${this.protocol}://${location}`;\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new TransportError(`HTTP ${response.status}: ${response.statusText} - ${url}`, this.name);\n }\n const arrayBuffer = await response.arrayBuffer();\n return Buffer.from(arrayBuffer);\n } catch (error) {\n if (error instanceof TransportError) {\n throw error;\n }\n throw new TransportError(`Network error: ${url}`, this.name, {\n cause: error\n });\n }\n }\n}\nvar httpsHandler = new HttpTransportHandler(\"https\");\nvar httpHandler = new HttpTransportHandler(\"http\");\n\nclass FileTransportHandler {\n name = \"file\";\n capabilities = {\n canRead: true,\n canWrite: true,\n canList: true,\n canDelete: true,\n canStat: true\n };\n resolvePath(location) {\n return resolve3(process.cwd(), location);\n }\n async read(location) {\n const filePath = this.resolvePath(location);\n try {\n return await readFile3(filePath);\n } catch (error) {\n const err = error;\n throw new TransportError(`File read error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async write(location, content) {\n const filePath = this.resolvePath(location);\n try {\n await mkdir3(dirname6(filePath), { recursive: true });\n await writeFile3(filePath, content);\n } catch (error) {\n const err = error;\n throw new TransportError(`File write error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async list(location) {\n const dirPath = this.resolvePath(location);\n try {\n return await readdir(dirPath);\n } catch (error) {\n const err = error;\n throw new TransportError(`Directory list error: ${err.code} - ${dirPath}`, this.name, {\n cause: err\n });\n }\n }\n async mkdir(location) {\n const dirPath = this.resolvePath(location);\n try {\n await mkdir3(dirPath, { recursive: true });\n } catch (error) {\n const err = error;\n throw new TransportError(`Directory create error: ${err.code} - ${dirPath}`, this.name, {\n cause: err\n });\n }\n }\n async exists(location) {\n const filePath = this.resolvePath(location);\n try {\n await access(filePath);\n return true;\n } catch {\n return false;\n }\n }\n async stat(location) {\n const filePath = this.resolvePath(location);\n try {\n const stats = await fsStat(filePath);\n return {\n size: stats.size,\n modifiedAt: stats.mtime,\n isDirectory: stats.isDirectory()\n };\n } catch (error) {\n const err = error;\n throw new TransportError(`File stat error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async delete(location) {\n const filePath = this.resolvePath(location);\n try {\n await rm3(filePath, { recursive: true });\n } catch (error) {\n const err = error;\n throw new TransportError(`File delete error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n}\nvar fileHandler = new FileTransportHandler;\nfunction agentvmHandler(config2 = {}) {\n const parentDir = config2.parentDir || homedir3();\n const baseDir = join6(parentDir, \".agentvm\");\n function resolvePath(location) {\n return join6(baseDir, location);\n }\n return {\n name: \"agentvm\",\n capabilities: {\n canRead: true,\n canWrite: true,\n canList: true,\n canDelete: true,\n canStat: true\n },\n async read(location) {\n const fullPath = resolvePath(location);\n try {\n return await readFile22(fullPath);\n } catch (error) {\n throw new TransportError(`Failed to read from agentvm: ${error.message}`, \"agentvm\", { cause: error });\n }\n },\n async write(location, content) {\n const fullPath = resolvePath(location);\n try {\n await mkdir22(join6(fullPath, \"..\"), { recursive: true });\n await writeFile22(fullPath, content);\n } catch (error) {\n throw new TransportError(`Failed to write to agentvm: ${error.message}`, \"agentvm\", { cause: error });\n }\n },\n async list(location) {\n const fullPath = resolvePath(location);\n try {\n return await readdir2(fullPath);\n } catch (error) {\n throw new TransportError(`Failed to list agentvm directory: ${error.message}`, \"agentvm\", { cause: error });\n }\n },\n async exists(location) {\n const fullPath = resolvePath(location);\n try {\n await access2(fullPath);\n return true;\n } catch {\n return false;\n }\n },\n async stat(location) {\n const fullPath = resolvePath(location);\n try {\n const stats = await stat(fullPath);\n return {\n size: stats.size,\n isDirectory: stats.isDirectory(),\n modifiedAt: stats.mtime\n };\n } catch (error) {\n throw new TransportError(`Failed to stat agentvm resource: ${error.message}`, \"agentvm\", { cause: error });\n }\n },\n async delete(location) {\n const fullPath = resolvePath(location);\n try {\n const stats = await stat(fullPath);\n if (stats.isDirectory()) {\n await rm22(fullPath, { recursive: true, force: true });\n } else {\n await unlink(fullPath);\n }\n } catch (error) {\n throw new TransportError(`Failed to delete from agentvm: ${error.message}`, \"agentvm\", { cause: error });\n }\n }\n };\n}\nvar handlers = new Map([\n [\"https\", httpsHandler],\n [\"http\", httpHandler],\n [\"file\", fileHandler]\n]);\nfunction getTransportHandler(name) {\n const handler = handlers.get(name);\n if (!handler) {\n throw new TransportError(`Unsupported transport type: ${name}`, name);\n }\n return handler;\n}\nfunction registerTransportHandler(handler) {\n handlers.set(handler.name, handler);\n}\n\nclass TextSemanticHandler {\n name = \"text\";\n async resolve(transport, location, context) {\n const buffer = await transport.read(location);\n const text = buffer.toString(\"utf-8\");\n const meta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: buffer.length,\n encoding: \"utf-8\",\n mimeType: \"text/plain\",\n resolvedAt: context.timestamp.toISOString()\n };\n return {\n type: \"text\",\n content: text,\n meta\n };\n }\n async deposit(transport, location, data, _context) {\n if (!transport.write) {\n throw new SemanticError(`Transport \"${transport.name}\" does not support write operation`, this.name);\n }\n const buffer = Buffer.from(data, \"utf-8\");\n await transport.write(location, buffer);\n }\n async exists(transport, location, _context) {\n if (transport.exists) {\n return transport.exists(location);\n }\n try {\n await transport.read(location);\n return true;\n } catch {\n return false;\n }\n }\n async delete(transport, location, _context) {\n if (!transport.delete) {\n throw new SemanticError(`Transport \"${transport.name}\" does not support delete operation`, this.name);\n }\n await transport.delete(location);\n }\n}\nvar textHandler = new TextSemanticHandler;\nfunction toBuffer(data) {\n if (Buffer.isBuffer(data)) {\n return data;\n }\n if (data instanceof Uint8Array) {\n return Buffer.from(data);\n }\n if (data instanceof ArrayBuffer) {\n return Buffer.from(data);\n }\n if (Array.isArray(data)) {\n return Buffer.from(data);\n }\n throw new SemanticError(`Unsupported binary input type`, \"binary\");\n}\n\nclass BinarySemanticHandler {\n name = \"binary\";\n async resolve(transport, location, context) {\n const buffer = await transport.read(location);\n const meta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: buffer.length,\n resolvedAt: context.timestamp.toISOString()\n };\n return {\n type: \"binary\",\n content: buffer,\n meta\n };\n }\n async deposit(transport, location, data, _context) {\n if (!transport.write) {\n throw new SemanticError(`Transport \"${transport.name}\" does not support write operation`, this.name);\n }\n const buffer = toBuffer(data);\n await transport.write(location, buffer);\n }\n async exists(transport, location, _context) {\n if (transport.exists) {\n return transport.exists(location);\n }\n try {\n await transport.read(location);\n return true;\n } catch {\n return false;\n }\n }\n async delete(transport, location, _context) {\n if (!transport.delete) {\n throw new SemanticError(`Transport \"${transport.name}\" does not support delete operation`, this.name);\n }\n await transport.delete(location);\n }\n}\nvar binaryHandler = new BinarySemanticHandler;\nvar handlers2 = new Map([\n [\"text\", textHandler],\n [\"binary\", binaryHandler]\n]);\nfunction getSemanticHandler(name) {\n const handler = handlers2.get(name);\n if (!handler) {\n throw new SemanticError(`Unsupported semantic type: ${name}`, name);\n }\n return handler;\n}\nfunction registerSemanticHandler(handler) {\n handlers2.set(handler.name, handler);\n}\nfunction createContext(url, semantic, transport, location) {\n return {\n url,\n semantic,\n transport,\n location,\n timestamp: new Date\n };\n}\nasync function resolve22(url) {\n const parsed = parseARP(url);\n const transport = getTransportHandler(parsed.transport);\n const semantic = getSemanticHandler(parsed.semantic);\n const context = createContext(url, parsed.semantic, parsed.transport, parsed.location);\n return semantic.resolve(transport, parsed.location, context);\n}\nasync function deposit(url, data) {\n const parsed = parseARP(url);\n const transport = getTransportHandler(parsed.transport);\n const semantic = getSemanticHandler(parsed.semantic);\n if (!semantic.deposit) {\n throw new SemanticError(`Semantic \"${semantic.name}\" does not support deposit operation`, parsed.semantic);\n }\n const context = createContext(url, parsed.semantic, parsed.transport, parsed.location);\n await semantic.deposit(transport, parsed.location, data, context);\n}\nasync function resourceExists(url) {\n const parsed = parseARP(url);\n const transport = getTransportHandler(parsed.transport);\n const semantic = getSemanticHandler(parsed.semantic);\n const context = createContext(url, parsed.semantic, parsed.transport, parsed.location);\n if (semantic.exists) {\n return semantic.exists(transport, parsed.location, context);\n }\n if (transport.exists) {\n return transport.exists(parsed.location);\n }\n try {\n await transport.read(parsed.location);\n return true;\n } catch {\n return false;\n }\n}\nasync function resourceDelete(url) {\n const parsed = parseARP(url);\n const transport = getTransportHandler(parsed.transport);\n const semantic = getSemanticHandler(parsed.semantic);\n const context = createContext(url, parsed.semantic, parsed.transport, parsed.location);\n if (semantic.delete) {\n return semantic.delete(transport, parsed.location, context);\n }\n if (!transport.delete) {\n throw new SemanticError(`Neither semantic \"${semantic.name}\" nor transport \"${transport.name}\" supports delete operation`, parsed.semantic);\n }\n await transport.delete(parsed.location);\n}\nfunction createResourceRegistry() {\n const registry = new Map;\n return {\n register(definition) {\n if (!/^[a-z][a-z0-9-]*$/.test(definition.name)) {\n throw new ParseError(`Invalid resource name: \"${definition.name}\". Must start with lowercase letter and contain only lowercase letters, numbers, and hyphens.`, definition.name);\n }\n getSemanticHandler(definition.semantic);\n getTransportHandler(definition.transport);\n registry.set(definition.name, definition);\n },\n get(name) {\n return registry.get(name);\n },\n has(name) {\n return registry.has(name);\n },\n clear() {\n registry.clear();\n }\n };\n}\n\nclass ResourceX {\n timeout;\n alias;\n resourceRegistry;\n constructor(config2 = {}) {\n this.timeout = config2.timeout;\n this.alias = config2.alias || \"@\";\n this.resourceRegistry = createResourceRegistry();\n if (config2.transports) {\n for (const handler of config2.transports) {\n registerTransportHandler(handler);\n }\n }\n if (config2.semantics) {\n for (const handler of config2.semantics) {\n registerSemanticHandler(handler);\n }\n }\n if (config2.resources) {\n for (const resource of config2.resources) {\n this.resourceRegistry.register(resource);\n }\n }\n }\n parseURL(url) {\n let content;\n if (url.startsWith(\"arp:\")) {\n content = url.substring(4);\n } else if (url.startsWith(this.alias)) {\n content = url.substring(this.alias.length);\n } else {\n throw new ParseError(`Invalid URL prefix: must start with \"arp:\" or \"${this.alias}\"`, url);\n }\n const separatorIndex = content.indexOf(\"://\");\n if (separatorIndex === -1) {\n throw new ParseError(`Invalid URL format: missing \"://\"`, url);\n }\n const beforeSeparator = content.substring(0, separatorIndex);\n const location = content.substring(separatorIndex + 3);\n const colonCount = (beforeSeparator.match(/:/g) || []).length;\n if (colonCount === 1) {\n const parts = beforeSeparator.split(\":\");\n if (parts.length !== 2) {\n throw new ParseError(`Invalid ARP URL format`, url);\n }\n const [semantic, transport] = parts;\n if (!semantic || !transport || !location) {\n throw new ParseError(`Invalid ARP URL: semantic, transport, and location are required`, url);\n }\n const arpUrl = `arp:${semantic}:${transport}://${location}`;\n return {\n arpUrl,\n parsed: { semantic, transport, location }\n };\n }\n if (colonCount === 0) {\n const name = beforeSeparator;\n if (!name || !location) {\n throw new ParseError(`Invalid Resource URL: name and location are required`, url);\n }\n const definition = this.resourceRegistry.get(name);\n if (!definition) {\n throw new ParseError(`Unknown resource: \"${name}\"`, url);\n }\n const fullLocation = definition.basePath ? join22(definition.basePath, location) : location;\n const arpUrl = `arp:${definition.semantic}:${definition.transport}://${fullLocation}`;\n return {\n arpUrl,\n parsed: {\n semantic: definition.semantic,\n transport: definition.transport,\n location: fullLocation\n }\n };\n }\n throw new ParseError(`Invalid URL format: unexpected colon count in \"${beforeSeparator}\"`, url);\n }\n parse(url) {\n return this.parseURL(url).parsed;\n }\n async resolve(url) {\n const { arpUrl } = this.parseURL(url);\n return resolve22(arpUrl);\n }\n async deposit(url, data) {\n const { arpUrl } = this.parseURL(url);\n return deposit(arpUrl, data);\n }\n async exists(url) {\n const { arpUrl } = this.parseURL(url);\n return resourceExists(arpUrl);\n }\n async delete(url) {\n const { arpUrl } = this.parseURL(url);\n return resourceDelete(arpUrl);\n }\n}\nfunction createResourceX(config2) {\n return new ResourceX(config2);\n}\n\nclass MemoryStateStore {\n logs = new Map;\n blobs = new Map;\n entries = new Map;\n async saveLog(key, data) {\n this.logs.set(key, data);\n }\n async loadLog(key) {\n const entries = this.entries.get(key);\n if (entries && entries.length > 0) {\n return JSON.stringify(entries);\n }\n return this.logs.get(key) ?? null;\n }\n async deleteLog(key) {\n this.logs.delete(key);\n this.entries.delete(key);\n }\n async listLogs() {\n const keys2 = new Set([...this.logs.keys(), ...this.entries.keys()]);\n return [...keys2];\n }\n async saveBlob(ref, data) {\n this.blobs.set(ref, data);\n }\n async loadBlob(ref) {\n return this.blobs.get(ref) ?? null;\n }\n async deleteBlob(ref) {\n this.blobs.delete(ref);\n }\n async appendEntry(sandboxId, entry) {\n const entries = this.entries.get(sandboxId) ?? [];\n entries.push(entry);\n this.entries.set(sandboxId, entries);\n }\n}\n\nclass ResourceXStateStore {\n rx;\n basePath;\n constructor() {\n this.rx = createResourceX({\n transports: [agentvmHandler()]\n });\n const os = __require2(\"os\");\n const path11 = __require2(\"path\");\n this.basePath = path11.join(os.homedir(), \".agentvm/sandbox\");\n }\n logUrl(key) {\n return `@text:agentvm://sandbox/state-logs/${key}.json`;\n }\n logPath(sandboxId) {\n const path11 = __require2(\"path\");\n return path11.join(this.basePath, \"state-logs\", `${sandboxId}.jsonl`);\n }\n blobUrl(ref) {\n return `@binary:agentvm://sandbox/blobs/${ref}`;\n }\n async saveLog(key, data) {\n await this.rx.deposit(this.logUrl(key), data);\n }\n async loadLog(key) {\n const fs8 = __require2(\"fs/promises\");\n const jsonlPath = this.logPath(key);\n try {\n const content = await fs8.readFile(jsonlPath, \"utf-8\");\n const entries = content.trim().split(`\n`).filter((line) => line).map((line) => JSON.parse(line));\n return JSON.stringify(entries);\n } catch {\n try {\n const exists = await this.rx.exists(this.logUrl(key));\n if (!exists)\n return null;\n const resource = await this.rx.resolve(this.logUrl(key));\n return resource.content;\n } catch {\n return null;\n }\n }\n }\n async deleteLog(key) {\n const fs8 = __require2(\"fs/promises\");\n try {\n await fs8.unlink(this.logPath(key));\n } catch {}\n try {\n const exists = await this.rx.exists(this.logUrl(key));\n if (exists) {\n await this.rx.delete(this.logUrl(key));\n }\n } catch {}\n }\n async listLogs() {\n return [];\n }\n async appendEntry(sandboxId, entry) {\n const fs8 = __require2(\"fs/promises\");\n const path11 = __require2(\"path\");\n const filePath = this.logPath(sandboxId);\n await fs8.mkdir(path11.dirname(filePath), { recursive: true });\n const line = JSON.stringify(entry) + `\n`;\n await fs8.appendFile(filePath, line, \"utf-8\");\n }\n async saveBlob(ref, data) {\n await this.rx.deposit(this.blobUrl(ref), data);\n }\n async loadBlob(ref) {\n try {\n const exists = await this.rx.exists(this.blobUrl(ref));\n if (!exists)\n return null;\n const resource = await this.rx.resolve(this.blobUrl(ref));\n return resource.content;\n } catch {\n return null;\n }\n }\n async deleteBlob(ref) {\n try {\n const exists = await this.rx.exists(this.blobUrl(ref));\n if (exists) {\n await this.rx.delete(this.blobUrl(ref));\n }\n } catch {}\n }\n}\nfunction createStateStore(options) {\n if (options.type === \"memory\") {\n return new MemoryStateStore;\n }\n if (options.type === \"resourcex\") {\n return new ResourceXStateStore;\n }\n throw new Error(`StateStore type \"${options.type}\" not implemented`);\n}\nfunction createRecordingProxy(target, namespace, log, onRecord) {\n return new Proxy(target, {\n get(obj, prop) {\n const value = obj[prop];\n if (typeof value !== \"function\") {\n return value;\n }\n const method = prop;\n const op = findOp(namespace, method);\n if (!op) {\n return value.bind(obj);\n }\n return (...args) => {\n const result = value.apply(obj, args);\n const record = () => {\n const entryArgs = argsToEntry(op, args);\n log.recordEntry(op, entryArgs);\n if (onRecord) {\n onRecord({ op, args: entryArgs });\n }\n };\n if (result instanceof Promise) {\n return result.then((res) => {\n record();\n return res;\n });\n } else {\n record();\n return result;\n }\n };\n }\n });\n}\nfunction createState(options) {\n const { sandbox, env, enableRecord, store = \"resourcex\", sandboxId } = options;\n const baseFS = new StateFS(sandbox);\n const baseEnv = new StateEnv(env);\n const baseStorage = new StateStorage;\n if (!enableRecord) {\n return {\n fs: baseFS,\n env: baseEnv,\n storage: baseStorage\n };\n }\n const stateLog = buildStateLog();\n const stateStore = createStateStore({ type: store });\n const onRecord = (entry) => {\n stateStore.appendEntry(sandboxId, entry).catch((err) => {\n console.error(`[SandboX] Failed to persist entry:`, err);\n });\n };\n return {\n fs: createRecordingProxy(baseFS, \"fs\", stateLog, onRecord),\n env: createRecordingProxy(baseEnv, \"env\", stateLog, onRecord),\n storage: createRecordingProxy(baseStorage, \"storage\", stateLog, onRecord),\n stateLog\n };\n}\nfunction generateRef(data) {\n const hash = createHash(\"sha256\").update(data).digest(\"hex\");\n return `sha256-${hash}`;\n}\n\nclass StateAssetsImpl {\n sandbox;\n store;\n uploadedPaths = new Set;\n constructor(options) {\n this.sandbox = options.sandbox;\n this.store = options.store;\n }\n async uploadBuffer(data, remotePath) {\n const ref = generateRef(data);\n await this.sandbox.upload(data, remotePath);\n await this.store.saveBlob(ref, data);\n this.uploadedPaths.add(remotePath);\n return ref;\n }\n async downloadBuffer(remotePath, options) {\n const data = await this.sandbox.download(remotePath);\n if (options?.persist) {\n const ref = generateRef(data);\n await this.store.saveBlob(ref, data);\n return ref;\n }\n return data;\n }\n list() {\n return [...this.uploadedPaths];\n }\n}\nfunction withState(Base) {\n return class extends Base {\n fs;\n env;\n storage;\n stateLog;\n initializeLog;\n initialized = false;\n constructor(config2) {\n super(config2);\n const stateConfig = config2.state;\n const state = createState({\n sandbox: this,\n env: stateConfig?.env,\n enableRecord: stateConfig?.enableRecord,\n store: stateConfig?.store,\n sandboxId: this.id\n });\n this.fs = state.fs;\n this.env = state.env;\n this.storage = state.storage;\n this.stateLog = state.stateLog;\n if (stateConfig?.initializeLog) {\n this.initializeLog = stateConfig.initializeLog;\n replayStateLogSync(stateConfig.initializeLog, this);\n }\n }\n async init() {\n if (this.initialized)\n return;\n this.initialized = true;\n if (this.initializeLog) {\n await replayStateLogFs(this.initializeLog, this);\n }\n }\n getStateLog() {\n return this.stateLog;\n }\n };\n}\n\n// src/createSandbox.ts\nfunction createSandbox(config2) {\n const SandboxWithState = withState(BaseSandbox);\n return new SandboxWithState(config2);\n}\n// src/SandboxManager.ts\nclass SandboxManager2 {\n}\nexport {\n withState,\n loadStateLog,\n createSandbox,\n buildStateLog,\n TimeoutError,\n StateStorage,\n StateFS,\n StateError,\n StateEnv,\n SrtIsolator,\n SandboxManager2 as SandboxManager,\n SandboxError,\n NoneIsolator,\n IsolationError,\n FileSystemError2 as FileSystemError,\n ExecutionError,\n CloudflareContainerIsolator,\n BaseSandbox\n};\n\n//# debugId=B0F55DCA5ED8975E64756E2164756E21\n",
|
|
6
|
-
"// src/errors.ts\nclass ResourceXError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\n\nclass LocatorError extends ResourceXError {\n locator;\n constructor(message, locator) {\n super(message);\n this.locator = locator;\n this.name = \"LocatorError\";\n }\n}\n\nclass ManifestError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"ManifestError\";\n }\n}\n\nclass ContentError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"ContentError\";\n }\n}\n// src/locator/parseRXL.ts\nclass RXLImpl {\n domain;\n path;\n name;\n type;\n version;\n constructor(parts) {\n this.domain = parts.domain;\n this.path = parts.path;\n this.name = parts.name;\n this.type = parts.type;\n this.version = parts.version;\n }\n toString() {\n let result = \"\";\n if (this.domain) {\n result += this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n }\n result += this.name;\n if (this.type) {\n result += \".\" + this.type;\n }\n if (this.version) {\n result += \"@\" + this.version;\n }\n return result;\n }\n}\nfunction isDomain(str) {\n if (str === \"localhost\")\n return true;\n return str.includes(\".\");\n}\nfunction parseRXL(locator) {\n let remaining = locator;\n let version;\n let type;\n let domain;\n let path;\n let name;\n const atIndex = remaining.indexOf(\"@\");\n if (atIndex !== -1) {\n version = remaining.slice(atIndex + 1);\n remaining = remaining.slice(0, atIndex);\n }\n const segments = remaining.split(\"/\");\n if (segments.length > 1 && isDomain(segments[0])) {\n domain = segments[0];\n const lastSegment = segments[segments.length - 1];\n if (segments.length > 2) {\n path = segments.slice(1, -1).join(\"/\");\n }\n remaining = lastSegment;\n } else {\n remaining = segments.join(\"/\");\n }\n const dotIndex = remaining.lastIndexOf(\".\");\n if (dotIndex !== -1) {\n type = remaining.slice(dotIndex + 1);\n name = remaining.slice(0, dotIndex);\n } else {\n name = remaining;\n }\n return new RXLImpl({ domain, path, name, type, version });\n}\n// src/manifest/createRXM.ts\nclass RXMImpl {\n domain;\n path;\n name;\n type;\n version;\n constructor(data) {\n this.domain = data.domain;\n this.path = data.path;\n this.name = data.name;\n this.type = data.type;\n this.version = data.version;\n }\n toLocator() {\n let result = this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n result += this.name;\n result += \".\" + this.type;\n result += \"@\" + this.version;\n return result;\n }\n toJSON() {\n const json = {\n domain: this.domain,\n name: this.name,\n type: this.type,\n version: this.version\n };\n if (this.path !== undefined) {\n json.path = this.path;\n }\n return json;\n }\n}\nfunction createRXM(data) {\n if (!data.domain) {\n throw new ManifestError(\"domain is required\");\n }\n if (!data.name) {\n throw new ManifestError(\"name is required\");\n }\n if (!data.type) {\n throw new ManifestError(\"type is required\");\n }\n if (!data.version) {\n throw new ManifestError(\"version is required\");\n }\n return new RXMImpl({\n domain: data.domain,\n path: data.path,\n name: data.name,\n type: data.type,\n version: data.version\n });\n}\n// src/archive/createRXA.ts\nimport { gzip, gunzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\n\n// ../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/unpacker-BpPBxY8N.js\nvar BLOCK_SIZE = 512;\nvar BLOCK_SIZE_MASK = 511;\nvar DEFAULT_FILE_MODE = 420;\nvar DEFAULT_DIR_MODE = 493;\nvar USTAR_NAME_OFFSET = 0;\nvar USTAR_NAME_SIZE = 100;\nvar USTAR_MODE_OFFSET = 100;\nvar USTAR_MODE_SIZE = 8;\nvar USTAR_UID_OFFSET = 108;\nvar USTAR_UID_SIZE = 8;\nvar USTAR_GID_OFFSET = 116;\nvar USTAR_GID_SIZE = 8;\nvar USTAR_SIZE_OFFSET = 124;\nvar USTAR_SIZE_SIZE = 12;\nvar USTAR_MTIME_OFFSET = 136;\nvar USTAR_MTIME_SIZE = 12;\nvar USTAR_CHECKSUM_OFFSET = 148;\nvar USTAR_CHECKSUM_SIZE = 8;\nvar USTAR_TYPEFLAG_OFFSET = 156;\nvar USTAR_TYPEFLAG_SIZE = 1;\nvar USTAR_LINKNAME_OFFSET = 157;\nvar USTAR_LINKNAME_SIZE = 100;\nvar USTAR_MAGIC_OFFSET = 257;\nvar USTAR_MAGIC_SIZE = 6;\nvar USTAR_VERSION_OFFSET = 263;\nvar USTAR_VERSION_SIZE = 2;\nvar USTAR_UNAME_OFFSET = 265;\nvar USTAR_UNAME_SIZE = 32;\nvar USTAR_GNAME_OFFSET = 297;\nvar USTAR_GNAME_SIZE = 32;\nvar USTAR_PREFIX_OFFSET = 345;\nvar USTAR_PREFIX_SIZE = 155;\nvar USTAR_VERSION = \"00\";\nvar USTAR_MAX_UID_GID = 2097151;\nvar USTAR_MAX_SIZE = 8589934591;\nvar FILE = \"file\";\nvar LINK = \"link\";\nvar SYMLINK = \"symlink\";\nvar DIRECTORY = \"directory\";\nvar TYPEFLAG = {\n file: \"0\",\n link: \"1\",\n symlink: \"2\",\n \"character-device\": \"3\",\n \"block-device\": \"4\",\n directory: \"5\",\n fifo: \"6\",\n \"pax-header\": \"x\",\n \"pax-global-header\": \"g\",\n \"gnu-long-name\": \"L\",\n \"gnu-long-link-name\": \"K\"\n};\nvar FLAGTYPE = {\n \"0\": FILE,\n \"1\": LINK,\n \"2\": SYMLINK,\n \"3\": \"character-device\",\n \"4\": \"block-device\",\n \"5\": DIRECTORY,\n \"6\": \"fifo\",\n x: \"pax-header\",\n g: \"pax-global-header\",\n L: \"gnu-long-name\",\n K: \"gnu-long-link-name\"\n};\nvar ZERO_BLOCK = new Uint8Array(BLOCK_SIZE);\nvar EMPTY = new Uint8Array(0);\nvar encoder = new TextEncoder;\nvar decoder = new TextDecoder;\nfunction writeString(view, offset, size, value) {\n if (value)\n encoder.encodeInto(value, view.subarray(offset, offset + size));\n}\nfunction writeOctal(view, offset, size, value) {\n if (value === undefined)\n return;\n const octalString = value.toString(8).padStart(size - 1, \"0\");\n encoder.encodeInto(octalString, view.subarray(offset, offset + size - 1));\n}\nfunction readString(view, offset, size) {\n const end = view.indexOf(0, offset);\n const sliceEnd = end === -1 || end > offset + size ? offset + size : end;\n return decoder.decode(view.subarray(offset, sliceEnd));\n}\nfunction readOctal(view, offset, size) {\n let value = 0;\n const end = offset + size;\n for (let i = offset;i < end; i++) {\n const charCode = view[i];\n if (charCode === 0)\n break;\n if (charCode === 32)\n continue;\n value = value * 8 + (charCode - 48);\n }\n return value;\n}\nfunction readNumeric(view, offset, size) {\n if (view[offset] & 128) {\n let result = 0;\n result = view[offset] & 127;\n for (let i = 1;i < size; i++)\n result = result * 256 + view[offset + i];\n if (!Number.isSafeInteger(result))\n throw new Error(\"TAR number too large\");\n return result;\n }\n return readOctal(view, offset, size);\n}\nvar isBodyless = (header) => header.type === DIRECTORY || header.type === SYMLINK || header.type === LINK;\nasync function normalizeBody(body) {\n if (body === null || body === undefined)\n return EMPTY;\n if (body instanceof Uint8Array)\n return body;\n if (typeof body === \"string\")\n return encoder.encode(body);\n if (body instanceof ArrayBuffer)\n return new Uint8Array(body);\n if (body instanceof Blob)\n return new Uint8Array(await body.arrayBuffer());\n throw new TypeError(\"Unsupported content type for entry body.\");\n}\nfunction transformHeader(header, options) {\n const { strip, filter, map } = options;\n if (!strip && !filter && !map)\n return header;\n const h = { ...header };\n if (strip && strip > 0) {\n const components = h.name.split(\"/\").filter(Boolean);\n if (strip >= components.length)\n return null;\n const newName = components.slice(strip).join(\"/\");\n h.name = h.type === DIRECTORY && !newName.endsWith(\"/\") ? `${newName}/` : newName;\n if (h.linkname?.startsWith(\"/\")) {\n const linkComponents = h.linkname.split(\"/\").filter(Boolean);\n h.linkname = strip >= linkComponents.length ? \"/\" : `/${linkComponents.slice(strip).join(\"/\")}`;\n }\n }\n if (filter?.(h) === false)\n return null;\n const result = map ? map(h) : h;\n if (result && (!result.name || !result.name.trim() || result.name === \".\" || result.name === \"/\"))\n return null;\n return result;\n}\nvar CHECKSUM_SPACE = 32;\nvar ASCII_ZERO = 48;\nfunction validateChecksum(block) {\n const stored = readOctal(block, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_SIZE);\n let sum = 0;\n for (let i = 0;i < block.length; i++)\n if (i >= USTAR_CHECKSUM_OFFSET && i < USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE)\n sum += CHECKSUM_SPACE;\n else\n sum += block[i];\n return stored === sum;\n}\nfunction writeChecksum(block) {\n block.fill(CHECKSUM_SPACE, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE);\n let checksum = 0;\n for (const byte of block)\n checksum += byte;\n for (let i = USTAR_CHECKSUM_OFFSET + 6 - 1;i >= USTAR_CHECKSUM_OFFSET; i--) {\n block[i] = (checksum & 7) + ASCII_ZERO;\n checksum >>= 3;\n }\n block[USTAR_CHECKSUM_OFFSET + 6] = 0;\n block[USTAR_CHECKSUM_OFFSET + 7] = CHECKSUM_SPACE;\n}\nfunction generatePax(header) {\n const paxRecords = {};\n if (header.name.length > USTAR_NAME_SIZE) {\n if (findUstarSplit(header.name) === null)\n paxRecords.path = header.name;\n }\n if (header.linkname && header.linkname.length > USTAR_NAME_SIZE)\n paxRecords.linkpath = header.linkname;\n if (header.uname && header.uname.length > USTAR_UNAME_SIZE)\n paxRecords.uname = header.uname;\n if (header.gname && header.gname.length > USTAR_GNAME_SIZE)\n paxRecords.gname = header.gname;\n if (header.uid != null && header.uid > USTAR_MAX_UID_GID)\n paxRecords.uid = String(header.uid);\n if (header.gid != null && header.gid > USTAR_MAX_UID_GID)\n paxRecords.gid = String(header.gid);\n if (header.size != null && header.size > USTAR_MAX_SIZE)\n paxRecords.size = String(header.size);\n if (header.pax)\n Object.assign(paxRecords, header.pax);\n const paxEntries = Object.entries(paxRecords);\n if (paxEntries.length === 0)\n return null;\n const paxBody = encoder.encode(paxEntries.map(([key, value]) => {\n const record = `${key}=${value}\n`;\n const partLength = encoder.encode(record).length + 1;\n let totalLength = partLength + String(partLength).length;\n totalLength = partLength + String(totalLength).length;\n return `${totalLength} ${record}`;\n }).join(\"\"));\n return {\n paxHeader: createTarHeader({\n name: decoder.decode(encoder.encode(`PaxHeader/${header.name}`).slice(0, 100)),\n size: paxBody.length,\n type: \"pax-header\",\n mode: 420,\n mtime: header.mtime,\n uname: header.uname,\n gname: header.gname,\n uid: header.uid,\n gid: header.gid\n }),\n paxBody\n };\n}\nfunction findUstarSplit(path) {\n if (path.length <= USTAR_NAME_SIZE)\n return null;\n const minSlashIndex = path.length - USTAR_NAME_SIZE - 1;\n const slashIndex = path.lastIndexOf(\"/\", USTAR_PREFIX_SIZE);\n if (slashIndex > 0 && slashIndex >= minSlashIndex)\n return {\n prefix: path.slice(0, slashIndex),\n name: path.slice(slashIndex + 1)\n };\n return null;\n}\nfunction createTarHeader(header) {\n const view = new Uint8Array(BLOCK_SIZE);\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n let name = header.name;\n let prefix = \"\";\n if (!header.pax?.path) {\n const split = findUstarSplit(name);\n if (split) {\n name = split.name;\n prefix = split.prefix;\n }\n }\n writeString(view, USTAR_NAME_OFFSET, USTAR_NAME_SIZE, name);\n writeOctal(view, USTAR_MODE_OFFSET, USTAR_MODE_SIZE, header.mode ?? (header.type === DIRECTORY ? DEFAULT_DIR_MODE : DEFAULT_FILE_MODE));\n writeOctal(view, USTAR_UID_OFFSET, USTAR_UID_SIZE, header.uid ?? 0);\n writeOctal(view, USTAR_GID_OFFSET, USTAR_GID_SIZE, header.gid ?? 0);\n writeOctal(view, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE, size);\n writeOctal(view, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE, Math.floor((header.mtime?.getTime() ?? Date.now()) / 1000));\n writeString(view, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE, TYPEFLAG[header.type ?? FILE]);\n writeString(view, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE, header.linkname);\n writeString(view, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE, \"ustar\\x00\");\n writeString(view, USTAR_VERSION_OFFSET, USTAR_VERSION_SIZE, USTAR_VERSION);\n writeString(view, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE, header.uname);\n writeString(view, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE, header.gname);\n writeString(view, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE, prefix);\n writeChecksum(view);\n return view;\n}\nfunction parseUstarHeader(block, strict) {\n if (strict && !validateChecksum(block))\n throw new Error(\"Invalid tar header checksum.\");\n const typeflag = readString(block, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE);\n const header = {\n name: readString(block, USTAR_NAME_OFFSET, USTAR_NAME_SIZE),\n mode: readOctal(block, USTAR_MODE_OFFSET, USTAR_MODE_SIZE),\n uid: readNumeric(block, USTAR_UID_OFFSET, USTAR_UID_SIZE),\n gid: readNumeric(block, USTAR_GID_OFFSET, USTAR_GID_SIZE),\n size: readNumeric(block, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE),\n mtime: /* @__PURE__ */ new Date(readNumeric(block, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE) * 1000),\n type: FLAGTYPE[typeflag] || FILE,\n linkname: readString(block, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE)\n };\n const magic = readString(block, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE);\n if (magic.trim() === \"ustar\") {\n header.uname = readString(block, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE);\n header.gname = readString(block, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE);\n }\n if (magic === \"ustar\")\n header.prefix = readString(block, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE);\n return header;\n}\nvar PAX_MAPPING = {\n path: [\"name\", (v) => v],\n linkpath: [\"linkname\", (v) => v],\n size: [\"size\", (v) => parseInt(v, 10)],\n mtime: [\"mtime\", parseFloat],\n uid: [\"uid\", (v) => parseInt(v, 10)],\n gid: [\"gid\", (v) => parseInt(v, 10)],\n uname: [\"uname\", (v) => v],\n gname: [\"gname\", (v) => v]\n};\nfunction parsePax(buffer) {\n const decoder$1 = new TextDecoder(\"utf-8\");\n const overrides = {};\n const pax = {};\n let offset = 0;\n while (offset < buffer.length) {\n const spaceIndex = buffer.indexOf(32, offset);\n if (spaceIndex === -1)\n break;\n const length = parseInt(decoder$1.decode(buffer.subarray(offset, spaceIndex)), 10);\n if (Number.isNaN(length) || length === 0)\n break;\n const recordEnd = offset + length;\n const [key, value] = decoder$1.decode(buffer.subarray(spaceIndex + 1, recordEnd - 1)).split(\"=\", 2);\n if (key && value !== undefined) {\n pax[key] = value;\n const mapping = PAX_MAPPING[key];\n if (mapping) {\n const [targetKey, parser] = mapping;\n const parsedValue = parser(value);\n if (typeof parsedValue === \"string\" || !Number.isNaN(parsedValue))\n overrides[targetKey] = parsedValue;\n }\n }\n offset = recordEnd;\n }\n if (Object.keys(pax).length > 0)\n overrides.pax = pax;\n return overrides;\n}\nfunction applyOverrides(header, overrides) {\n if (overrides.name !== undefined)\n header.name = overrides.name;\n if (overrides.linkname !== undefined)\n header.linkname = overrides.linkname;\n if (overrides.size !== undefined)\n header.size = overrides.size;\n if (overrides.mtime !== undefined)\n header.mtime = /* @__PURE__ */ new Date(overrides.mtime * 1000);\n if (overrides.uid !== undefined)\n header.uid = overrides.uid;\n if (overrides.gid !== undefined)\n header.gid = overrides.gid;\n if (overrides.uname !== undefined)\n header.uname = overrides.uname;\n if (overrides.gname !== undefined)\n header.gname = overrides.gname;\n if (overrides.pax)\n header.pax = Object.assign({}, header.pax ?? {}, overrides.pax);\n}\nfunction getMetaParser(type) {\n switch (type) {\n case \"pax-global-header\":\n case \"pax-header\":\n return parsePax;\n case \"gnu-long-name\":\n return (data) => ({ name: readString(data, 0, data.length) });\n case \"gnu-long-link-name\":\n return (data) => ({ linkname: readString(data, 0, data.length) });\n default:\n return;\n }\n}\nfunction getHeaderBlocks(header) {\n const base = createTarHeader(header);\n const pax = generatePax(header);\n if (!pax)\n return [base];\n const paxPadding = -pax.paxBody.length & BLOCK_SIZE_MASK;\n const paddingBlocks = paxPadding > 0 ? [ZERO_BLOCK.subarray(0, paxPadding)] : [];\n return [\n pax.paxHeader,\n pax.paxBody,\n ...paddingBlocks,\n base\n ];\n}\nvar EOF_BUFFER = new Uint8Array(BLOCK_SIZE * 2);\nfunction createTarPacker(onData, onError, onFinalize) {\n let currentHeader = null;\n let bytesWritten = 0;\n let finalized = false;\n return {\n add(header) {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"No new tar entries after finalize.\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Previous entry must be completed before adding a new one\");\n onError(error);\n throw error;\n }\n try {\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n const headerBlocks = getHeaderBlocks({\n ...header,\n size\n });\n for (const block of headerBlocks)\n onData(block);\n currentHeader = {\n ...header,\n size\n };\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n }\n },\n write(chunk) {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active tar entry.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot write data after finalize.\");\n onError(error);\n throw error;\n }\n const newTotal = bytesWritten + chunk.length;\n if (newTotal > currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`\"${currentHeader.name}\" exceeds given size of ${currentHeader.size} bytes.`);\n onError(error);\n throw error;\n }\n try {\n bytesWritten = newTotal;\n onData(chunk);\n } catch (error) {\n onError(error);\n }\n },\n endEntry() {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active entry to end.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot end entry after finalize.\");\n onError(error);\n throw error;\n }\n try {\n if (bytesWritten !== currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`Size mismatch for \"${currentHeader.name}\".`);\n onError(error);\n throw error;\n }\n const paddingSize = -currentHeader.size & BLOCK_SIZE_MASK;\n if (paddingSize > 0)\n onData(new Uint8Array(paddingSize));\n currentHeader = null;\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n throw error;\n }\n },\n finalize() {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Archive has already been finalized\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Cannot finalize while an entry is still active\");\n onError(error);\n throw error;\n }\n try {\n onData(EOF_BUFFER);\n finalized = true;\n if (onFinalize)\n onFinalize();\n } catch (error) {\n onError(error);\n }\n }\n };\n}\nvar INITIAL_CAPACITY = 256;\nfunction createChunkQueue() {\n let chunks = new Array(INITIAL_CAPACITY);\n let capacityMask = chunks.length - 1;\n let head = 0;\n let tail = 0;\n let totalAvailable = 0;\n const consumeFromHead = (count) => {\n const chunk = chunks[head];\n if (count === chunk.length) {\n chunks[head] = EMPTY;\n head = head + 1 & capacityMask;\n } else\n chunks[head] = chunk.subarray(count);\n totalAvailable -= count;\n if (totalAvailable === 0 && chunks.length > INITIAL_CAPACITY) {\n chunks = new Array(INITIAL_CAPACITY);\n capacityMask = INITIAL_CAPACITY - 1;\n head = 0;\n tail = 0;\n }\n };\n function pull(bytes, callback) {\n if (callback) {\n let fed = 0;\n let remaining$1 = Math.min(bytes, totalAvailable);\n while (remaining$1 > 0) {\n const chunk = chunks[head];\n const toFeed = Math.min(remaining$1, chunk.length);\n const segment = toFeed === chunk.length ? chunk : chunk.subarray(0, toFeed);\n consumeFromHead(toFeed);\n remaining$1 -= toFeed;\n fed += toFeed;\n if (!callback(segment))\n break;\n }\n return fed;\n }\n if (totalAvailable < bytes)\n return null;\n if (bytes === 0)\n return EMPTY;\n const firstChunk = chunks[head];\n if (firstChunk.length >= bytes) {\n const view = firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n consumeFromHead(bytes);\n return view;\n }\n const result = new Uint8Array(bytes);\n let copied = 0;\n let remaining = bytes;\n while (remaining > 0) {\n const chunk = chunks[head];\n const toCopy = Math.min(remaining, chunk.length);\n result.set(toCopy === chunk.length ? chunk : chunk.subarray(0, toCopy), copied);\n copied += toCopy;\n remaining -= toCopy;\n consumeFromHead(toCopy);\n }\n return result;\n }\n return {\n push: (chunk) => {\n if (chunk.length === 0)\n return;\n let nextTail = tail + 1 & capacityMask;\n if (nextTail === head) {\n const oldLen = chunks.length;\n const newLen = oldLen * 2;\n const newChunks = new Array(newLen);\n const count = tail - head + oldLen & oldLen - 1;\n if (head < tail)\n for (let i = 0;i < count; i++)\n newChunks[i] = chunks[head + i];\n else if (count > 0) {\n const firstPart = oldLen - head;\n for (let i = 0;i < firstPart; i++)\n newChunks[i] = chunks[head + i];\n for (let i = 0;i < tail; i++)\n newChunks[firstPart + i] = chunks[i];\n }\n chunks = newChunks;\n capacityMask = newLen - 1;\n head = 0;\n tail = count;\n nextTail = tail + 1 & capacityMask;\n }\n chunks[tail] = chunk;\n tail = nextTail;\n totalAvailable += chunk.length;\n },\n available: () => totalAvailable,\n peek: (bytes) => {\n if (totalAvailable < bytes)\n return null;\n if (bytes === 0)\n return EMPTY;\n const firstChunk = chunks[head];\n if (firstChunk.length >= bytes)\n return firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n const result = new Uint8Array(bytes);\n let copied = 0;\n let index = head;\n while (copied < bytes) {\n const chunk = chunks[index];\n const toCopy = Math.min(bytes - copied, chunk.length);\n if (toCopy === chunk.length)\n result.set(chunk, copied);\n else\n result.set(chunk.subarray(0, toCopy), copied);\n copied += toCopy;\n index = index + 1 & capacityMask;\n }\n return result;\n },\n discard: (bytes) => {\n if (bytes > totalAvailable)\n throw new Error(\"Too many bytes consumed\");\n if (bytes === 0)\n return;\n let remaining = bytes;\n while (remaining > 0) {\n const chunk = chunks[head];\n const toConsume = Math.min(remaining, chunk.length);\n consumeFromHead(toConsume);\n remaining -= toConsume;\n }\n },\n pull\n };\n}\nvar STATE_HEADER = 0;\nvar STATE_BODY = 1;\nvar truncateErr = /* @__PURE__ */ new Error(\"Tar archive is truncated.\");\nfunction createUnpacker(options = {}) {\n const strict = options.strict ?? false;\n const { available, peek, push, discard, pull } = createChunkQueue();\n let state = STATE_HEADER;\n let ended = false;\n let done = false;\n let eof = false;\n let currentEntry = null;\n const paxGlobals = {};\n let nextEntryOverrides = {};\n const unpacker = {\n isEntryActive: () => state === STATE_BODY,\n isBodyComplete: () => !currentEntry || currentEntry.remaining === 0,\n write(chunk) {\n if (ended)\n throw new Error(\"Archive already ended.\");\n push(chunk);\n },\n end() {\n ended = true;\n },\n readHeader() {\n if (state !== STATE_HEADER)\n throw new Error(\"Cannot read header while an entry is active\");\n if (done)\n return;\n while (!done) {\n if (available() < BLOCK_SIZE) {\n if (ended) {\n if (available() > 0 && strict)\n throw truncateErr;\n done = true;\n return;\n }\n return null;\n }\n const headerBlock = peek(BLOCK_SIZE);\n if (isZeroBlock(headerBlock)) {\n if (available() < BLOCK_SIZE * 2) {\n if (ended) {\n if (strict)\n throw truncateErr;\n done = true;\n return;\n }\n return null;\n }\n if (isZeroBlock(peek(BLOCK_SIZE * 2).subarray(BLOCK_SIZE))) {\n discard(BLOCK_SIZE * 2);\n done = true;\n eof = true;\n return;\n }\n if (strict)\n throw new Error(\"Invalid tar header.\");\n discard(BLOCK_SIZE);\n continue;\n }\n let internalHeader;\n try {\n internalHeader = parseUstarHeader(headerBlock, strict);\n } catch (err) {\n if (strict)\n throw err;\n discard(BLOCK_SIZE);\n continue;\n }\n const metaParser = getMetaParser(internalHeader.type);\n if (metaParser) {\n const paddedSize = internalHeader.size + BLOCK_SIZE_MASK & ~BLOCK_SIZE_MASK;\n if (available() < BLOCK_SIZE + paddedSize) {\n if (ended && strict)\n throw truncateErr;\n return null;\n }\n discard(BLOCK_SIZE);\n const overrides = metaParser(pull(paddedSize).subarray(0, internalHeader.size));\n const target = internalHeader.type === \"pax-global-header\" ? paxGlobals : nextEntryOverrides;\n for (const key in overrides)\n target[key] = overrides[key];\n continue;\n }\n discard(BLOCK_SIZE);\n const header = internalHeader;\n if (internalHeader.prefix)\n header.name = `${internalHeader.prefix}/${header.name}`;\n applyOverrides(header, paxGlobals);\n applyOverrides(header, nextEntryOverrides);\n nextEntryOverrides = {};\n currentEntry = {\n header,\n remaining: header.size,\n padding: -header.size & BLOCK_SIZE_MASK\n };\n state = STATE_BODY;\n return header;\n }\n },\n streamBody(callback) {\n if (state !== STATE_BODY || !currentEntry || currentEntry.remaining === 0)\n return 0;\n const bytesToFeed = Math.min(currentEntry.remaining, available());\n if (bytesToFeed === 0)\n return 0;\n const fed = pull(bytesToFeed, callback);\n currentEntry.remaining -= fed;\n return fed;\n },\n skipPadding() {\n if (state !== STATE_BODY || !currentEntry)\n return true;\n if (currentEntry.remaining > 0)\n throw new Error(\"Body not fully consumed\");\n if (available() < currentEntry.padding)\n return false;\n discard(currentEntry.padding);\n currentEntry = null;\n state = STATE_HEADER;\n return true;\n },\n skipEntry() {\n if (state !== STATE_BODY || !currentEntry)\n return true;\n const toDiscard = Math.min(currentEntry.remaining, available());\n if (toDiscard > 0) {\n discard(toDiscard);\n currentEntry.remaining -= toDiscard;\n }\n if (currentEntry.remaining > 0)\n return false;\n return unpacker.skipPadding();\n },\n validateEOF() {\n if (strict) {\n if (!eof)\n throw truncateErr;\n if (available() > 0) {\n if (pull(available()).some((byte) => byte !== 0))\n throw new Error(\"Invalid EOF.\");\n }\n }\n }\n };\n return unpacker;\n}\nfunction isZeroBlock(block) {\n if (block.byteOffset % 8 === 0) {\n const view = new BigUint64Array(block.buffer, block.byteOffset, block.length / 8);\n for (let i = 0;i < view.length; i++)\n if (view[i] !== 0n)\n return false;\n return true;\n }\n for (let i = 0;i < block.length; i++)\n if (block[i] !== 0)\n return false;\n return true;\n}\n\n// ../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/web/index.js\nfunction createTarPacker2() {\n let streamController;\n let packer;\n return {\n readable: new ReadableStream({ start(controller) {\n streamController = controller;\n packer = createTarPacker(controller.enqueue.bind(controller), controller.error.bind(controller), controller.close.bind(controller));\n } }),\n controller: {\n add(header) {\n const bodyless = isBodyless(header);\n const h = { ...header };\n if (bodyless)\n h.size = 0;\n packer.add(h);\n if (bodyless)\n packer.endEntry();\n return new WritableStream({\n write(chunk) {\n packer.write(chunk);\n },\n close() {\n if (!bodyless)\n packer.endEntry();\n },\n abort(reason) {\n streamController.error(reason);\n }\n });\n },\n finalize() {\n packer.finalize();\n },\n error(err) {\n streamController.error(err);\n }\n }\n };\n}\nasync function streamToBuffer(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let totalLength = 0;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n chunks.push(value);\n totalLength += value.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n } finally {\n reader.releaseLock();\n }\n}\nvar drain = (stream) => stream.pipeTo(new WritableStream);\nfunction createTarDecoder(options = {}) {\n const unpacker = createUnpacker(options);\n let bodyController = null;\n let pumping = false;\n const pump = (controller) => {\n if (pumping)\n return;\n pumping = true;\n try {\n while (true)\n if (unpacker.isEntryActive()) {\n if (bodyController) {\n if (unpacker.streamBody((c) => (bodyController.enqueue(c), true)) === 0 && !unpacker.isBodyComplete())\n break;\n } else if (!unpacker.skipEntry())\n break;\n if (unpacker.isBodyComplete()) {\n try {\n bodyController?.close();\n } catch {}\n bodyController = null;\n if (!unpacker.skipPadding())\n break;\n }\n } else {\n const header = unpacker.readHeader();\n if (header === null || header === undefined)\n break;\n controller.enqueue({\n header,\n body: new ReadableStream({\n start(c) {\n if (header.size === 0)\n c.close();\n else\n bodyController = c;\n },\n pull: () => pump(controller),\n cancel() {\n bodyController = null;\n pump(controller);\n }\n })\n });\n }\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n bodyController = null;\n throw error;\n } finally {\n pumping = false;\n }\n };\n return new TransformStream({\n transform(chunk, controller) {\n try {\n unpacker.write(chunk);\n pump(controller);\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n throw error;\n }\n },\n flush(controller) {\n try {\n unpacker.end();\n pump(controller);\n unpacker.validateEOF();\n if (unpacker.isEntryActive() && !unpacker.isBodyComplete())\n try {\n bodyController?.close();\n } catch {}\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n throw error;\n }\n }\n }, undefined, { highWaterMark: 1 });\n}\nasync function packTar(entries) {\n const { readable, controller } = createTarPacker2();\n await (async () => {\n for (const entry of entries) {\n const entryStream = controller.add(entry.header);\n const body = \"body\" in entry ? entry.body : entry.data;\n if (!body) {\n await entryStream.close();\n continue;\n }\n if (body instanceof ReadableStream)\n await body.pipeTo(entryStream);\n else if (body instanceof Blob)\n await body.stream().pipeTo(entryStream);\n else\n try {\n const chunk = await normalizeBody(body);\n if (chunk.length > 0) {\n const writer = entryStream.getWriter();\n await writer.write(chunk);\n await writer.close();\n } else\n await entryStream.close();\n } catch {\n throw new TypeError(`Unsupported content type for entry \"${entry.header.name}\".`);\n }\n }\n })().then(() => controller.finalize()).catch((err) => controller.error(err));\n return new Uint8Array(await streamToBuffer(readable));\n}\nasync function unpackTar(archive, options = {}) {\n const sourceStream = archive instanceof ReadableStream ? archive : new ReadableStream({ start(controller) {\n controller.enqueue(archive instanceof Uint8Array ? archive : new Uint8Array(archive));\n controller.close();\n } });\n const results = [];\n const entryStream = sourceStream.pipeThrough(createTarDecoder(options));\n for await (const entry of entryStream) {\n let processedHeader;\n try {\n processedHeader = transformHeader(entry.header, options);\n } catch (error) {\n await entry.body.cancel();\n throw error;\n }\n if (processedHeader === null) {\n await drain(entry.body);\n continue;\n }\n if (isBodyless(processedHeader)) {\n await drain(entry.body);\n results.push({ header: processedHeader });\n } else\n results.push({\n header: processedHeader,\n data: await streamToBuffer(entry.body)\n });\n }\n return results;\n}\n\n// src/archive/createRXA.ts\nvar gzipAsync = promisify(gzip);\nvar gunzipAsync = promisify(gunzip);\n\nclass RXPImpl {\n _files;\n _pathsCache = null;\n _treeCache = null;\n constructor(files) {\n this._files = files;\n }\n paths() {\n if (this._pathsCache) {\n return this._pathsCache;\n }\n this._pathsCache = Array.from(this._files.keys()).sort();\n return this._pathsCache;\n }\n tree() {\n if (this._treeCache) {\n return this._treeCache;\n }\n const root = new Map;\n for (const path of this._files.keys()) {\n const parts = path.split(\"/\");\n let currentLevel = root;\n for (let i = 0;i < parts.length; i++) {\n const part = parts[i];\n const isFile = i === parts.length - 1;\n if (!currentLevel.has(part)) {\n const treeNode2 = {\n node: {\n name: part,\n type: isFile ? \"file\" : \"directory\",\n children: isFile ? undefined : []\n },\n children: new Map\n };\n currentLevel.set(part, treeNode2);\n }\n const treeNode = currentLevel.get(part);\n if (!isFile) {\n currentLevel = treeNode.children;\n }\n }\n }\n const convertToPathNodes = (level) => {\n return Array.from(level.values()).map((treeNode) => {\n if (treeNode.node.type === \"directory\" && treeNode.children.size > 0) {\n treeNode.node.children = convertToPathNodes(treeNode.children);\n }\n return treeNode.node;\n });\n };\n this._treeCache = convertToPathNodes(root);\n return this._treeCache;\n }\n async file(path) {\n const content = this._files.get(path);\n if (!content) {\n throw new ContentError(`file not found: ${path}`);\n }\n return content;\n }\n async files() {\n return new Map(this._files);\n }\n async pack() {\n const filesRecord = {};\n for (const [path, content] of this._files) {\n filesRecord[path] = content;\n }\n return createRXA(filesRecord);\n }\n}\n\nclass RXAImpl {\n _buffer;\n _rxpCache = null;\n constructor(buffer) {\n this._buffer = buffer;\n }\n get stream() {\n const buffer = this._buffer;\n return new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(buffer));\n controller.close();\n }\n });\n }\n async buffer() {\n return this._buffer;\n }\n async extract() {\n if (this._rxpCache) {\n return this._rxpCache;\n }\n const tarBuffer = await gunzipAsync(this._buffer);\n const entries = await unpackTar(tarBuffer);\n const filesMap = new Map;\n for (const entry of entries) {\n if ((entry.header.type === \"file\" || entry.header.type === undefined) && entry.data) {\n filesMap.set(entry.header.name, Buffer.from(entry.data));\n }\n }\n this._rxpCache = new RXPImpl(filesMap);\n return this._rxpCache;\n }\n}\nfunction isBufferInput(input) {\n return \"buffer\" in input && Buffer.isBuffer(input.buffer);\n}\nasync function createRXA(input) {\n if (isBufferInput(input)) {\n return new RXAImpl(input.buffer);\n }\n const entries = Object.entries(input).map(([name, content]) => {\n const body = typeof content === \"string\" ? content : content instanceof Uint8Array ? content : new Uint8Array(content);\n const size = typeof content === \"string\" ? Buffer.byteLength(content) : content.length;\n return {\n header: { name, size, type: \"file\" },\n body\n };\n });\n const tarBuffer = await packTar(entries);\n const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));\n return new RXAImpl(gzipBuffer);\n}\nexport {\n parseRXL,\n createRXM,\n createRXA,\n ResourceXError,\n ManifestError,\n LocatorError,\n ContentError\n};\n\n//# debugId=AFABB314B72836D164756E2164756E21\n",
|
|
7
|
-
"// src/bundler.ts\nimport { readFile } from \"node:fs/promises\";\nimport { resolve, isAbsolute } from \"node:path\";\nasync function bundleResourceType(sourcePath, basePath) {\n const fullPath = isAbsolute(sourcePath) ? sourcePath : resolve(basePath ?? process.cwd(), sourcePath);\n const source = await readFile(fullPath, \"utf-8\");\n const result = await Bun.build({\n stdin: {\n contents: source,\n resolveDir: resolve(fullPath, \"..\"),\n loader: \"ts\"\n },\n target: \"bun\",\n format: \"esm\",\n minify: false\n });\n if (!result.success) {\n const errors = result.logs.map((log) => log.message).join(`\n`);\n throw new Error(`Failed to bundle ${sourcePath}: ${errors}`);\n }\n const bundledCode = await result.outputs[0].text();\n const tempModule = await import(fullPath);\n const typeSource = tempModule.default;\n if (!typeSource.name) {\n throw new Error(`Resource type at ${sourcePath} must have a name`);\n }\n if (typeof typeSource.resolve !== \"function\") {\n throw new Error(`Resource type at ${sourcePath} must have a resolve function`);\n }\n return {\n name: typeSource.name,\n aliases: typeSource.aliases,\n description: typeSource.description ?? \"\",\n schema: typeSource.schema,\n code: bundledCode\n };\n}\n// ../core/dist/index.js\nimport { gzip, gunzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\n\nclass ResourceXError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\nvar BLOCK_SIZE = 512;\nvar ZERO_BLOCK = new Uint8Array(BLOCK_SIZE);\nvar EMPTY = new Uint8Array(0);\nvar encoder = new TextEncoder;\nvar decoder = new TextDecoder;\nvar EOF_BUFFER = new Uint8Array(BLOCK_SIZE * 2);\nvar gzipAsync = promisify(gzip);\nvar gunzipAsync = promisify(gunzip);\n\n// src/errors.ts\nclass ResourceTypeError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"ResourceTypeError\";\n }\n}\n// src/builtinTypes.ts\nvar textType = {\n name: \"text\",\n aliases: [\"txt\", \"plaintext\"],\n description: \"Plain text content\",\n code: `// @resolver: text_type_default\n// src/builtins/text.type.ts\nvar text_type_default = {\n name: \"text\",\n aliases: [\"txt\", \"plaintext\"],\n description: \"Plain text content\",\n async resolve(ctx) {\n const content = ctx.files[\"content\"];\n return new TextDecoder().decode(content);\n }\n};`\n};\nvar jsonType = {\n name: \"json\",\n aliases: [\"config\", \"manifest\"],\n description: \"JSON content\",\n code: `// @resolver: json_type_default\n// src/builtins/json.type.ts\nvar json_type_default = {\n name: \"json\",\n aliases: [\"config\", \"manifest\"],\n description: \"JSON content\",\n async resolve(ctx) {\n const content = ctx.files[\"content\"];\n return JSON.parse(new TextDecoder().decode(content));\n }\n};`\n};\nvar binaryType = {\n name: \"binary\",\n aliases: [\"bin\", \"blob\", \"raw\"],\n description: \"Binary content\",\n code: `// @resolver: binary_type_default\n// src/builtins/binary.type.ts\nvar binary_type_default = {\n name: \"binary\",\n aliases: [\"bin\", \"blob\", \"raw\"],\n description: \"Binary content\",\n async resolve(ctx) {\n return ctx.files[\"content\"];\n }\n};`\n};\nvar builtinTypes = [textType, jsonType, binaryType];\n\n// src/TypeHandlerChain.ts\nclass TypeHandlerChain {\n handlers = new Map;\n constructor() {\n for (const type of builtinTypes) {\n this.registerInternal(type);\n }\n }\n static create() {\n return new TypeHandlerChain;\n }\n registerInternal(type) {\n this.handlers.set(type.name, type);\n if (type.aliases) {\n for (const alias of type.aliases) {\n this.handlers.set(alias, type);\n }\n }\n }\n register(type) {\n if (this.handlers.has(type.name)) {\n throw new ResourceTypeError(`Type '${type.name}' is already registered`);\n }\n this.handlers.set(type.name, type);\n if (type.aliases) {\n for (const alias of type.aliases) {\n if (this.handlers.has(alias)) {\n throw new ResourceTypeError(`Alias '${alias}' conflicts with existing type or alias`);\n }\n this.handlers.set(alias, type);\n }\n }\n }\n canHandle(typeName) {\n return this.handlers.has(typeName);\n }\n getHandler(typeName) {\n const handler = this.handlers.get(typeName);\n if (!handler) {\n throw new ResourceTypeError(`Unsupported resource type: ${typeName}`);\n }\n return handler;\n }\n getHandlerOrUndefined(typeName) {\n return this.handlers.get(typeName);\n }\n getSupportedTypes() {\n return Array.from(this.handlers.keys());\n }\n clear() {\n this.handlers.clear();\n }\n}\nexport {\n textType,\n jsonType,\n bundleResourceType,\n builtinTypes,\n binaryType,\n TypeHandlerChain,\n ResourceTypeError\n};\n\n//# debugId=9BB0B47B5E1F216964756E2164756E21\n",
|
|
8
|
-
"// src/FolderLoader.ts\nimport { join, relative } from \"node:path\";\nimport { stat, readFile, readdir } from \"node:fs/promises\";\n\n// ../core/dist/index.js\nimport { gzip, gunzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\n\nclass ResourceXError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\nclass ManifestError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"ManifestError\";\n }\n}\n\nclass ContentError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"ContentError\";\n }\n}\n\nclass RXLImpl {\n domain;\n path;\n name;\n type;\n version;\n constructor(parts) {\n this.domain = parts.domain;\n this.path = parts.path;\n this.name = parts.name;\n this.type = parts.type;\n this.version = parts.version;\n }\n toString() {\n let result = \"\";\n if (this.domain) {\n result += this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n }\n result += this.name;\n if (this.type) {\n result += \".\" + this.type;\n }\n if (this.version) {\n result += \"@\" + this.version;\n }\n return result;\n }\n}\nfunction isDomain(str) {\n if (str === \"localhost\")\n return true;\n return str.includes(\".\");\n}\nfunction parseRXL(locator) {\n let remaining = locator;\n let version;\n let type;\n let domain;\n let path;\n let name;\n const atIndex = remaining.indexOf(\"@\");\n if (atIndex !== -1) {\n version = remaining.slice(atIndex + 1);\n remaining = remaining.slice(0, atIndex);\n }\n const segments = remaining.split(\"/\");\n if (segments.length > 1 && isDomain(segments[0])) {\n domain = segments[0];\n const lastSegment = segments[segments.length - 1];\n if (segments.length > 2) {\n path = segments.slice(1, -1).join(\"/\");\n }\n remaining = lastSegment;\n } else {\n remaining = segments.join(\"/\");\n }\n const dotIndex = remaining.lastIndexOf(\".\");\n if (dotIndex !== -1) {\n type = remaining.slice(dotIndex + 1);\n name = remaining.slice(0, dotIndex);\n } else {\n name = remaining;\n }\n return new RXLImpl({ domain, path, name, type, version });\n}\n\nclass RXMImpl {\n domain;\n path;\n name;\n type;\n version;\n constructor(data) {\n this.domain = data.domain;\n this.path = data.path;\n this.name = data.name;\n this.type = data.type;\n this.version = data.version;\n }\n toLocator() {\n let result = this.domain + \"/\";\n if (this.path) {\n result += this.path + \"/\";\n }\n result += this.name;\n result += \".\" + this.type;\n result += \"@\" + this.version;\n return result;\n }\n toJSON() {\n const json = {\n domain: this.domain,\n name: this.name,\n type: this.type,\n version: this.version\n };\n if (this.path !== undefined) {\n json.path = this.path;\n }\n return json;\n }\n}\nfunction createRXM(data) {\n if (!data.domain) {\n throw new ManifestError(\"domain is required\");\n }\n if (!data.name) {\n throw new ManifestError(\"name is required\");\n }\n if (!data.type) {\n throw new ManifestError(\"type is required\");\n }\n if (!data.version) {\n throw new ManifestError(\"version is required\");\n }\n return new RXMImpl({\n domain: data.domain,\n path: data.path,\n name: data.name,\n type: data.type,\n version: data.version\n });\n}\nvar BLOCK_SIZE = 512;\nvar BLOCK_SIZE_MASK = 511;\nvar DEFAULT_FILE_MODE = 420;\nvar DEFAULT_DIR_MODE = 493;\nvar USTAR_NAME_OFFSET = 0;\nvar USTAR_NAME_SIZE = 100;\nvar USTAR_MODE_OFFSET = 100;\nvar USTAR_MODE_SIZE = 8;\nvar USTAR_UID_OFFSET = 108;\nvar USTAR_UID_SIZE = 8;\nvar USTAR_GID_OFFSET = 116;\nvar USTAR_GID_SIZE = 8;\nvar USTAR_SIZE_OFFSET = 124;\nvar USTAR_SIZE_SIZE = 12;\nvar USTAR_MTIME_OFFSET = 136;\nvar USTAR_MTIME_SIZE = 12;\nvar USTAR_CHECKSUM_OFFSET = 148;\nvar USTAR_CHECKSUM_SIZE = 8;\nvar USTAR_TYPEFLAG_OFFSET = 156;\nvar USTAR_TYPEFLAG_SIZE = 1;\nvar USTAR_LINKNAME_OFFSET = 157;\nvar USTAR_LINKNAME_SIZE = 100;\nvar USTAR_MAGIC_OFFSET = 257;\nvar USTAR_MAGIC_SIZE = 6;\nvar USTAR_VERSION_OFFSET = 263;\nvar USTAR_VERSION_SIZE = 2;\nvar USTAR_UNAME_OFFSET = 265;\nvar USTAR_UNAME_SIZE = 32;\nvar USTAR_GNAME_OFFSET = 297;\nvar USTAR_GNAME_SIZE = 32;\nvar USTAR_PREFIX_OFFSET = 345;\nvar USTAR_PREFIX_SIZE = 155;\nvar USTAR_VERSION = \"00\";\nvar USTAR_MAX_UID_GID = 2097151;\nvar USTAR_MAX_SIZE = 8589934591;\nvar FILE = \"file\";\nvar LINK = \"link\";\nvar SYMLINK = \"symlink\";\nvar DIRECTORY = \"directory\";\nvar TYPEFLAG = {\n file: \"0\",\n link: \"1\",\n symlink: \"2\",\n \"character-device\": \"3\",\n \"block-device\": \"4\",\n directory: \"5\",\n fifo: \"6\",\n \"pax-header\": \"x\",\n \"pax-global-header\": \"g\",\n \"gnu-long-name\": \"L\",\n \"gnu-long-link-name\": \"K\"\n};\nvar FLAGTYPE = {\n \"0\": FILE,\n \"1\": LINK,\n \"2\": SYMLINK,\n \"3\": \"character-device\",\n \"4\": \"block-device\",\n \"5\": DIRECTORY,\n \"6\": \"fifo\",\n x: \"pax-header\",\n g: \"pax-global-header\",\n L: \"gnu-long-name\",\n K: \"gnu-long-link-name\"\n};\nvar ZERO_BLOCK = new Uint8Array(BLOCK_SIZE);\nvar EMPTY = new Uint8Array(0);\nvar encoder = new TextEncoder;\nvar decoder = new TextDecoder;\nfunction writeString(view, offset, size, value) {\n if (value)\n encoder.encodeInto(value, view.subarray(offset, offset + size));\n}\nfunction writeOctal(view, offset, size, value) {\n if (value === undefined)\n return;\n const octalString = value.toString(8).padStart(size - 1, \"0\");\n encoder.encodeInto(octalString, view.subarray(offset, offset + size - 1));\n}\nfunction readString(view, offset, size) {\n const end = view.indexOf(0, offset);\n const sliceEnd = end === -1 || end > offset + size ? offset + size : end;\n return decoder.decode(view.subarray(offset, sliceEnd));\n}\nfunction readOctal(view, offset, size) {\n let value = 0;\n const end = offset + size;\n for (let i = offset;i < end; i++) {\n const charCode = view[i];\n if (charCode === 0)\n break;\n if (charCode === 32)\n continue;\n value = value * 8 + (charCode - 48);\n }\n return value;\n}\nfunction readNumeric(view, offset, size) {\n if (view[offset] & 128) {\n let result = 0;\n result = view[offset] & 127;\n for (let i = 1;i < size; i++)\n result = result * 256 + view[offset + i];\n if (!Number.isSafeInteger(result))\n throw new Error(\"TAR number too large\");\n return result;\n }\n return readOctal(view, offset, size);\n}\nvar isBodyless = (header) => header.type === DIRECTORY || header.type === SYMLINK || header.type === LINK;\nasync function normalizeBody(body) {\n if (body === null || body === undefined)\n return EMPTY;\n if (body instanceof Uint8Array)\n return body;\n if (typeof body === \"string\")\n return encoder.encode(body);\n if (body instanceof ArrayBuffer)\n return new Uint8Array(body);\n if (body instanceof Blob)\n return new Uint8Array(await body.arrayBuffer());\n throw new TypeError(\"Unsupported content type for entry body.\");\n}\nfunction transformHeader(header, options) {\n const { strip, filter, map } = options;\n if (!strip && !filter && !map)\n return header;\n const h = { ...header };\n if (strip && strip > 0) {\n const components = h.name.split(\"/\").filter(Boolean);\n if (strip >= components.length)\n return null;\n const newName = components.slice(strip).join(\"/\");\n h.name = h.type === DIRECTORY && !newName.endsWith(\"/\") ? `${newName}/` : newName;\n if (h.linkname?.startsWith(\"/\")) {\n const linkComponents = h.linkname.split(\"/\").filter(Boolean);\n h.linkname = strip >= linkComponents.length ? \"/\" : `/${linkComponents.slice(strip).join(\"/\")}`;\n }\n }\n if (filter?.(h) === false)\n return null;\n const result = map ? map(h) : h;\n if (result && (!result.name || !result.name.trim() || result.name === \".\" || result.name === \"/\"))\n return null;\n return result;\n}\nvar CHECKSUM_SPACE = 32;\nvar ASCII_ZERO = 48;\nfunction validateChecksum(block) {\n const stored = readOctal(block, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_SIZE);\n let sum = 0;\n for (let i = 0;i < block.length; i++)\n if (i >= USTAR_CHECKSUM_OFFSET && i < USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE)\n sum += CHECKSUM_SPACE;\n else\n sum += block[i];\n return stored === sum;\n}\nfunction writeChecksum(block) {\n block.fill(CHECKSUM_SPACE, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE);\n let checksum = 0;\n for (const byte of block)\n checksum += byte;\n for (let i = USTAR_CHECKSUM_OFFSET + 6 - 1;i >= USTAR_CHECKSUM_OFFSET; i--) {\n block[i] = (checksum & 7) + ASCII_ZERO;\n checksum >>= 3;\n }\n block[USTAR_CHECKSUM_OFFSET + 6] = 0;\n block[USTAR_CHECKSUM_OFFSET + 7] = CHECKSUM_SPACE;\n}\nfunction generatePax(header) {\n const paxRecords = {};\n if (header.name.length > USTAR_NAME_SIZE) {\n if (findUstarSplit(header.name) === null)\n paxRecords.path = header.name;\n }\n if (header.linkname && header.linkname.length > USTAR_NAME_SIZE)\n paxRecords.linkpath = header.linkname;\n if (header.uname && header.uname.length > USTAR_UNAME_SIZE)\n paxRecords.uname = header.uname;\n if (header.gname && header.gname.length > USTAR_GNAME_SIZE)\n paxRecords.gname = header.gname;\n if (header.uid != null && header.uid > USTAR_MAX_UID_GID)\n paxRecords.uid = String(header.uid);\n if (header.gid != null && header.gid > USTAR_MAX_UID_GID)\n paxRecords.gid = String(header.gid);\n if (header.size != null && header.size > USTAR_MAX_SIZE)\n paxRecords.size = String(header.size);\n if (header.pax)\n Object.assign(paxRecords, header.pax);\n const paxEntries = Object.entries(paxRecords);\n if (paxEntries.length === 0)\n return null;\n const paxBody = encoder.encode(paxEntries.map(([key, value]) => {\n const record = `${key}=${value}\n`;\n const partLength = encoder.encode(record).length + 1;\n let totalLength = partLength + String(partLength).length;\n totalLength = partLength + String(totalLength).length;\n return `${totalLength} ${record}`;\n }).join(\"\"));\n return {\n paxHeader: createTarHeader({\n name: decoder.decode(encoder.encode(`PaxHeader/${header.name}`).slice(0, 100)),\n size: paxBody.length,\n type: \"pax-header\",\n mode: 420,\n mtime: header.mtime,\n uname: header.uname,\n gname: header.gname,\n uid: header.uid,\n gid: header.gid\n }),\n paxBody\n };\n}\nfunction findUstarSplit(path) {\n if (path.length <= USTAR_NAME_SIZE)\n return null;\n const minSlashIndex = path.length - USTAR_NAME_SIZE - 1;\n const slashIndex = path.lastIndexOf(\"/\", USTAR_PREFIX_SIZE);\n if (slashIndex > 0 && slashIndex >= minSlashIndex)\n return {\n prefix: path.slice(0, slashIndex),\n name: path.slice(slashIndex + 1)\n };\n return null;\n}\nfunction createTarHeader(header) {\n const view = new Uint8Array(BLOCK_SIZE);\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n let name = header.name;\n let prefix = \"\";\n if (!header.pax?.path) {\n const split = findUstarSplit(name);\n if (split) {\n name = split.name;\n prefix = split.prefix;\n }\n }\n writeString(view, USTAR_NAME_OFFSET, USTAR_NAME_SIZE, name);\n writeOctal(view, USTAR_MODE_OFFSET, USTAR_MODE_SIZE, header.mode ?? (header.type === DIRECTORY ? DEFAULT_DIR_MODE : DEFAULT_FILE_MODE));\n writeOctal(view, USTAR_UID_OFFSET, USTAR_UID_SIZE, header.uid ?? 0);\n writeOctal(view, USTAR_GID_OFFSET, USTAR_GID_SIZE, header.gid ?? 0);\n writeOctal(view, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE, size);\n writeOctal(view, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE, Math.floor((header.mtime?.getTime() ?? Date.now()) / 1000));\n writeString(view, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE, TYPEFLAG[header.type ?? FILE]);\n writeString(view, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE, header.linkname);\n writeString(view, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE, \"ustar\\x00\");\n writeString(view, USTAR_VERSION_OFFSET, USTAR_VERSION_SIZE, USTAR_VERSION);\n writeString(view, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE, header.uname);\n writeString(view, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE, header.gname);\n writeString(view, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE, prefix);\n writeChecksum(view);\n return view;\n}\nfunction parseUstarHeader(block, strict) {\n if (strict && !validateChecksum(block))\n throw new Error(\"Invalid tar header checksum.\");\n const typeflag = readString(block, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE);\n const header = {\n name: readString(block, USTAR_NAME_OFFSET, USTAR_NAME_SIZE),\n mode: readOctal(block, USTAR_MODE_OFFSET, USTAR_MODE_SIZE),\n uid: readNumeric(block, USTAR_UID_OFFSET, USTAR_UID_SIZE),\n gid: readNumeric(block, USTAR_GID_OFFSET, USTAR_GID_SIZE),\n size: readNumeric(block, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE),\n mtime: /* @__PURE__ */ new Date(readNumeric(block, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE) * 1000),\n type: FLAGTYPE[typeflag] || FILE,\n linkname: readString(block, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE)\n };\n const magic = readString(block, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE);\n if (magic.trim() === \"ustar\") {\n header.uname = readString(block, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE);\n header.gname = readString(block, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE);\n }\n if (magic === \"ustar\")\n header.prefix = readString(block, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE);\n return header;\n}\nvar PAX_MAPPING = {\n path: [\"name\", (v) => v],\n linkpath: [\"linkname\", (v) => v],\n size: [\"size\", (v) => parseInt(v, 10)],\n mtime: [\"mtime\", parseFloat],\n uid: [\"uid\", (v) => parseInt(v, 10)],\n gid: [\"gid\", (v) => parseInt(v, 10)],\n uname: [\"uname\", (v) => v],\n gname: [\"gname\", (v) => v]\n};\nfunction parsePax(buffer) {\n const decoder$1 = new TextDecoder(\"utf-8\");\n const overrides = {};\n const pax = {};\n let offset = 0;\n while (offset < buffer.length) {\n const spaceIndex = buffer.indexOf(32, offset);\n if (spaceIndex === -1)\n break;\n const length = parseInt(decoder$1.decode(buffer.subarray(offset, spaceIndex)), 10);\n if (Number.isNaN(length) || length === 0)\n break;\n const recordEnd = offset + length;\n const [key, value] = decoder$1.decode(buffer.subarray(spaceIndex + 1, recordEnd - 1)).split(\"=\", 2);\n if (key && value !== undefined) {\n pax[key] = value;\n const mapping = PAX_MAPPING[key];\n if (mapping) {\n const [targetKey, parser] = mapping;\n const parsedValue = parser(value);\n if (typeof parsedValue === \"string\" || !Number.isNaN(parsedValue))\n overrides[targetKey] = parsedValue;\n }\n }\n offset = recordEnd;\n }\n if (Object.keys(pax).length > 0)\n overrides.pax = pax;\n return overrides;\n}\nfunction applyOverrides(header, overrides) {\n if (overrides.name !== undefined)\n header.name = overrides.name;\n if (overrides.linkname !== undefined)\n header.linkname = overrides.linkname;\n if (overrides.size !== undefined)\n header.size = overrides.size;\n if (overrides.mtime !== undefined)\n header.mtime = /* @__PURE__ */ new Date(overrides.mtime * 1000);\n if (overrides.uid !== undefined)\n header.uid = overrides.uid;\n if (overrides.gid !== undefined)\n header.gid = overrides.gid;\n if (overrides.uname !== undefined)\n header.uname = overrides.uname;\n if (overrides.gname !== undefined)\n header.gname = overrides.gname;\n if (overrides.pax)\n header.pax = Object.assign({}, header.pax ?? {}, overrides.pax);\n}\nfunction getMetaParser(type) {\n switch (type) {\n case \"pax-global-header\":\n case \"pax-header\":\n return parsePax;\n case \"gnu-long-name\":\n return (data) => ({ name: readString(data, 0, data.length) });\n case \"gnu-long-link-name\":\n return (data) => ({ linkname: readString(data, 0, data.length) });\n default:\n return;\n }\n}\nfunction getHeaderBlocks(header) {\n const base = createTarHeader(header);\n const pax = generatePax(header);\n if (!pax)\n return [base];\n const paxPadding = -pax.paxBody.length & BLOCK_SIZE_MASK;\n const paddingBlocks = paxPadding > 0 ? [ZERO_BLOCK.subarray(0, paxPadding)] : [];\n return [\n pax.paxHeader,\n pax.paxBody,\n ...paddingBlocks,\n base\n ];\n}\nvar EOF_BUFFER = new Uint8Array(BLOCK_SIZE * 2);\nfunction createTarPacker(onData, onError, onFinalize) {\n let currentHeader = null;\n let bytesWritten = 0;\n let finalized = false;\n return {\n add(header) {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"No new tar entries after finalize.\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Previous entry must be completed before adding a new one\");\n onError(error);\n throw error;\n }\n try {\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n const headerBlocks = getHeaderBlocks({\n ...header,\n size\n });\n for (const block of headerBlocks)\n onData(block);\n currentHeader = {\n ...header,\n size\n };\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n }\n },\n write(chunk) {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active tar entry.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot write data after finalize.\");\n onError(error);\n throw error;\n }\n const newTotal = bytesWritten + chunk.length;\n if (newTotal > currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`\"${currentHeader.name}\" exceeds given size of ${currentHeader.size} bytes.`);\n onError(error);\n throw error;\n }\n try {\n bytesWritten = newTotal;\n onData(chunk);\n } catch (error) {\n onError(error);\n }\n },\n endEntry() {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active entry to end.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot end entry after finalize.\");\n onError(error);\n throw error;\n }\n try {\n if (bytesWritten !== currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`Size mismatch for \"${currentHeader.name}\".`);\n onError(error);\n throw error;\n }\n const paddingSize = -currentHeader.size & BLOCK_SIZE_MASK;\n if (paddingSize > 0)\n onData(new Uint8Array(paddingSize));\n currentHeader = null;\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n throw error;\n }\n },\n finalize() {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Archive has already been finalized\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Cannot finalize while an entry is still active\");\n onError(error);\n throw error;\n }\n try {\n onData(EOF_BUFFER);\n finalized = true;\n if (onFinalize)\n onFinalize();\n } catch (error) {\n onError(error);\n }\n }\n };\n}\nvar INITIAL_CAPACITY = 256;\nfunction createChunkQueue() {\n let chunks = new Array(INITIAL_CAPACITY);\n let capacityMask = chunks.length - 1;\n let head = 0;\n let tail = 0;\n let totalAvailable = 0;\n const consumeFromHead = (count) => {\n const chunk = chunks[head];\n if (count === chunk.length) {\n chunks[head] = EMPTY;\n head = head + 1 & capacityMask;\n } else\n chunks[head] = chunk.subarray(count);\n totalAvailable -= count;\n if (totalAvailable === 0 && chunks.length > INITIAL_CAPACITY) {\n chunks = new Array(INITIAL_CAPACITY);\n capacityMask = INITIAL_CAPACITY - 1;\n head = 0;\n tail = 0;\n }\n };\n function pull(bytes, callback) {\n if (callback) {\n let fed = 0;\n let remaining$1 = Math.min(bytes, totalAvailable);\n while (remaining$1 > 0) {\n const chunk = chunks[head];\n const toFeed = Math.min(remaining$1, chunk.length);\n const segment = toFeed === chunk.length ? chunk : chunk.subarray(0, toFeed);\n consumeFromHead(toFeed);\n remaining$1 -= toFeed;\n fed += toFeed;\n if (!callback(segment))\n break;\n }\n return fed;\n }\n if (totalAvailable < bytes)\n return null;\n if (bytes === 0)\n return EMPTY;\n const firstChunk = chunks[head];\n if (firstChunk.length >= bytes) {\n const view = firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n consumeFromHead(bytes);\n return view;\n }\n const result = new Uint8Array(bytes);\n let copied = 0;\n let remaining = bytes;\n while (remaining > 0) {\n const chunk = chunks[head];\n const toCopy = Math.min(remaining, chunk.length);\n result.set(toCopy === chunk.length ? chunk : chunk.subarray(0, toCopy), copied);\n copied += toCopy;\n remaining -= toCopy;\n consumeFromHead(toCopy);\n }\n return result;\n }\n return {\n push: (chunk) => {\n if (chunk.length === 0)\n return;\n let nextTail = tail + 1 & capacityMask;\n if (nextTail === head) {\n const oldLen = chunks.length;\n const newLen = oldLen * 2;\n const newChunks = new Array(newLen);\n const count = tail - head + oldLen & oldLen - 1;\n if (head < tail)\n for (let i = 0;i < count; i++)\n newChunks[i] = chunks[head + i];\n else if (count > 0) {\n const firstPart = oldLen - head;\n for (let i = 0;i < firstPart; i++)\n newChunks[i] = chunks[head + i];\n for (let i = 0;i < tail; i++)\n newChunks[firstPart + i] = chunks[i];\n }\n chunks = newChunks;\n capacityMask = newLen - 1;\n head = 0;\n tail = count;\n nextTail = tail + 1 & capacityMask;\n }\n chunks[tail] = chunk;\n tail = nextTail;\n totalAvailable += chunk.length;\n },\n available: () => totalAvailable,\n peek: (bytes) => {\n if (totalAvailable < bytes)\n return null;\n if (bytes === 0)\n return EMPTY;\n const firstChunk = chunks[head];\n if (firstChunk.length >= bytes)\n return firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n const result = new Uint8Array(bytes);\n let copied = 0;\n let index = head;\n while (copied < bytes) {\n const chunk = chunks[index];\n const toCopy = Math.min(bytes - copied, chunk.length);\n if (toCopy === chunk.length)\n result.set(chunk, copied);\n else\n result.set(chunk.subarray(0, toCopy), copied);\n copied += toCopy;\n index = index + 1 & capacityMask;\n }\n return result;\n },\n discard: (bytes) => {\n if (bytes > totalAvailable)\n throw new Error(\"Too many bytes consumed\");\n if (bytes === 0)\n return;\n let remaining = bytes;\n while (remaining > 0) {\n const chunk = chunks[head];\n const toConsume = Math.min(remaining, chunk.length);\n consumeFromHead(toConsume);\n remaining -= toConsume;\n }\n },\n pull\n };\n}\nvar STATE_HEADER = 0;\nvar STATE_BODY = 1;\nvar truncateErr = /* @__PURE__ */ new Error(\"Tar archive is truncated.\");\nfunction createUnpacker(options = {}) {\n const strict = options.strict ?? false;\n const { available, peek, push, discard, pull } = createChunkQueue();\n let state = STATE_HEADER;\n let ended = false;\n let done = false;\n let eof = false;\n let currentEntry = null;\n const paxGlobals = {};\n let nextEntryOverrides = {};\n const unpacker = {\n isEntryActive: () => state === STATE_BODY,\n isBodyComplete: () => !currentEntry || currentEntry.remaining === 0,\n write(chunk) {\n if (ended)\n throw new Error(\"Archive already ended.\");\n push(chunk);\n },\n end() {\n ended = true;\n },\n readHeader() {\n if (state !== STATE_HEADER)\n throw new Error(\"Cannot read header while an entry is active\");\n if (done)\n return;\n while (!done) {\n if (available() < BLOCK_SIZE) {\n if (ended) {\n if (available() > 0 && strict)\n throw truncateErr;\n done = true;\n return;\n }\n return null;\n }\n const headerBlock = peek(BLOCK_SIZE);\n if (isZeroBlock(headerBlock)) {\n if (available() < BLOCK_SIZE * 2) {\n if (ended) {\n if (strict)\n throw truncateErr;\n done = true;\n return;\n }\n return null;\n }\n if (isZeroBlock(peek(BLOCK_SIZE * 2).subarray(BLOCK_SIZE))) {\n discard(BLOCK_SIZE * 2);\n done = true;\n eof = true;\n return;\n }\n if (strict)\n throw new Error(\"Invalid tar header.\");\n discard(BLOCK_SIZE);\n continue;\n }\n let internalHeader;\n try {\n internalHeader = parseUstarHeader(headerBlock, strict);\n } catch (err) {\n if (strict)\n throw err;\n discard(BLOCK_SIZE);\n continue;\n }\n const metaParser = getMetaParser(internalHeader.type);\n if (metaParser) {\n const paddedSize = internalHeader.size + BLOCK_SIZE_MASK & ~BLOCK_SIZE_MASK;\n if (available() < BLOCK_SIZE + paddedSize) {\n if (ended && strict)\n throw truncateErr;\n return null;\n }\n discard(BLOCK_SIZE);\n const overrides = metaParser(pull(paddedSize).subarray(0, internalHeader.size));\n const target = internalHeader.type === \"pax-global-header\" ? paxGlobals : nextEntryOverrides;\n for (const key in overrides)\n target[key] = overrides[key];\n continue;\n }\n discard(BLOCK_SIZE);\n const header = internalHeader;\n if (internalHeader.prefix)\n header.name = `${internalHeader.prefix}/${header.name}`;\n applyOverrides(header, paxGlobals);\n applyOverrides(header, nextEntryOverrides);\n nextEntryOverrides = {};\n currentEntry = {\n header,\n remaining: header.size,\n padding: -header.size & BLOCK_SIZE_MASK\n };\n state = STATE_BODY;\n return header;\n }\n },\n streamBody(callback) {\n if (state !== STATE_BODY || !currentEntry || currentEntry.remaining === 0)\n return 0;\n const bytesToFeed = Math.min(currentEntry.remaining, available());\n if (bytesToFeed === 0)\n return 0;\n const fed = pull(bytesToFeed, callback);\n currentEntry.remaining -= fed;\n return fed;\n },\n skipPadding() {\n if (state !== STATE_BODY || !currentEntry)\n return true;\n if (currentEntry.remaining > 0)\n throw new Error(\"Body not fully consumed\");\n if (available() < currentEntry.padding)\n return false;\n discard(currentEntry.padding);\n currentEntry = null;\n state = STATE_HEADER;\n return true;\n },\n skipEntry() {\n if (state !== STATE_BODY || !currentEntry)\n return true;\n const toDiscard = Math.min(currentEntry.remaining, available());\n if (toDiscard > 0) {\n discard(toDiscard);\n currentEntry.remaining -= toDiscard;\n }\n if (currentEntry.remaining > 0)\n return false;\n return unpacker.skipPadding();\n },\n validateEOF() {\n if (strict) {\n if (!eof)\n throw truncateErr;\n if (available() > 0) {\n if (pull(available()).some((byte) => byte !== 0))\n throw new Error(\"Invalid EOF.\");\n }\n }\n }\n };\n return unpacker;\n}\nfunction isZeroBlock(block) {\n if (block.byteOffset % 8 === 0) {\n const view = new BigUint64Array(block.buffer, block.byteOffset, block.length / 8);\n for (let i = 0;i < view.length; i++)\n if (view[i] !== 0n)\n return false;\n return true;\n }\n for (let i = 0;i < block.length; i++)\n if (block[i] !== 0)\n return false;\n return true;\n}\nfunction createTarPacker2() {\n let streamController;\n let packer;\n return {\n readable: new ReadableStream({ start(controller) {\n streamController = controller;\n packer = createTarPacker(controller.enqueue.bind(controller), controller.error.bind(controller), controller.close.bind(controller));\n } }),\n controller: {\n add(header) {\n const bodyless = isBodyless(header);\n const h = { ...header };\n if (bodyless)\n h.size = 0;\n packer.add(h);\n if (bodyless)\n packer.endEntry();\n return new WritableStream({\n write(chunk) {\n packer.write(chunk);\n },\n close() {\n if (!bodyless)\n packer.endEntry();\n },\n abort(reason) {\n streamController.error(reason);\n }\n });\n },\n finalize() {\n packer.finalize();\n },\n error(err) {\n streamController.error(err);\n }\n }\n };\n}\nasync function streamToBuffer(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let totalLength = 0;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n chunks.push(value);\n totalLength += value.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n } finally {\n reader.releaseLock();\n }\n}\nvar drain = (stream) => stream.pipeTo(new WritableStream);\nfunction createTarDecoder(options = {}) {\n const unpacker = createUnpacker(options);\n let bodyController = null;\n let pumping = false;\n const pump = (controller) => {\n if (pumping)\n return;\n pumping = true;\n try {\n while (true)\n if (unpacker.isEntryActive()) {\n if (bodyController) {\n if (unpacker.streamBody((c) => (bodyController.enqueue(c), true)) === 0 && !unpacker.isBodyComplete())\n break;\n } else if (!unpacker.skipEntry())\n break;\n if (unpacker.isBodyComplete()) {\n try {\n bodyController?.close();\n } catch {}\n bodyController = null;\n if (!unpacker.skipPadding())\n break;\n }\n } else {\n const header = unpacker.readHeader();\n if (header === null || header === undefined)\n break;\n controller.enqueue({\n header,\n body: new ReadableStream({\n start(c) {\n if (header.size === 0)\n c.close();\n else\n bodyController = c;\n },\n pull: () => pump(controller),\n cancel() {\n bodyController = null;\n pump(controller);\n }\n })\n });\n }\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n bodyController = null;\n throw error;\n } finally {\n pumping = false;\n }\n };\n return new TransformStream({\n transform(chunk, controller) {\n try {\n unpacker.write(chunk);\n pump(controller);\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n throw error;\n }\n },\n flush(controller) {\n try {\n unpacker.end();\n pump(controller);\n unpacker.validateEOF();\n if (unpacker.isEntryActive() && !unpacker.isBodyComplete())\n try {\n bodyController?.close();\n } catch {}\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n throw error;\n }\n }\n }, undefined, { highWaterMark: 1 });\n}\nasync function packTar(entries) {\n const { readable, controller } = createTarPacker2();\n await (async () => {\n for (const entry of entries) {\n const entryStream = controller.add(entry.header);\n const body = \"body\" in entry ? entry.body : entry.data;\n if (!body) {\n await entryStream.close();\n continue;\n }\n if (body instanceof ReadableStream)\n await body.pipeTo(entryStream);\n else if (body instanceof Blob)\n await body.stream().pipeTo(entryStream);\n else\n try {\n const chunk = await normalizeBody(body);\n if (chunk.length > 0) {\n const writer = entryStream.getWriter();\n await writer.write(chunk);\n await writer.close();\n } else\n await entryStream.close();\n } catch {\n throw new TypeError(`Unsupported content type for entry \"${entry.header.name}\".`);\n }\n }\n })().then(() => controller.finalize()).catch((err) => controller.error(err));\n return new Uint8Array(await streamToBuffer(readable));\n}\nasync function unpackTar(archive, options = {}) {\n const sourceStream = archive instanceof ReadableStream ? archive : new ReadableStream({ start(controller) {\n controller.enqueue(archive instanceof Uint8Array ? archive : new Uint8Array(archive));\n controller.close();\n } });\n const results = [];\n const entryStream = sourceStream.pipeThrough(createTarDecoder(options));\n for await (const entry of entryStream) {\n let processedHeader;\n try {\n processedHeader = transformHeader(entry.header, options);\n } catch (error) {\n await entry.body.cancel();\n throw error;\n }\n if (processedHeader === null) {\n await drain(entry.body);\n continue;\n }\n if (isBodyless(processedHeader)) {\n await drain(entry.body);\n results.push({ header: processedHeader });\n } else\n results.push({\n header: processedHeader,\n data: await streamToBuffer(entry.body)\n });\n }\n return results;\n}\nvar gzipAsync = promisify(gzip);\nvar gunzipAsync = promisify(gunzip);\n\nclass RXPImpl {\n _files;\n _pathsCache = null;\n _treeCache = null;\n constructor(files) {\n this._files = files;\n }\n paths() {\n if (this._pathsCache) {\n return this._pathsCache;\n }\n this._pathsCache = Array.from(this._files.keys()).sort();\n return this._pathsCache;\n }\n tree() {\n if (this._treeCache) {\n return this._treeCache;\n }\n const root = new Map;\n for (const path of this._files.keys()) {\n const parts = path.split(\"/\");\n let currentLevel = root;\n for (let i = 0;i < parts.length; i++) {\n const part = parts[i];\n const isFile = i === parts.length - 1;\n if (!currentLevel.has(part)) {\n const treeNode2 = {\n node: {\n name: part,\n type: isFile ? \"file\" : \"directory\",\n children: isFile ? undefined : []\n },\n children: new Map\n };\n currentLevel.set(part, treeNode2);\n }\n const treeNode = currentLevel.get(part);\n if (!isFile) {\n currentLevel = treeNode.children;\n }\n }\n }\n const convertToPathNodes = (level) => {\n return Array.from(level.values()).map((treeNode) => {\n if (treeNode.node.type === \"directory\" && treeNode.children.size > 0) {\n treeNode.node.children = convertToPathNodes(treeNode.children);\n }\n return treeNode.node;\n });\n };\n this._treeCache = convertToPathNodes(root);\n return this._treeCache;\n }\n async file(path) {\n const content = this._files.get(path);\n if (!content) {\n throw new ContentError(`file not found: ${path}`);\n }\n return content;\n }\n async files() {\n return new Map(this._files);\n }\n async pack() {\n const filesRecord = {};\n for (const [path, content] of this._files) {\n filesRecord[path] = content;\n }\n return createRXA(filesRecord);\n }\n}\n\nclass RXAImpl {\n _buffer;\n _rxpCache = null;\n constructor(buffer) {\n this._buffer = buffer;\n }\n get stream() {\n const buffer = this._buffer;\n return new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(buffer));\n controller.close();\n }\n });\n }\n async buffer() {\n return this._buffer;\n }\n async extract() {\n if (this._rxpCache) {\n return this._rxpCache;\n }\n const tarBuffer = await gunzipAsync(this._buffer);\n const entries = await unpackTar(tarBuffer);\n const filesMap = new Map;\n for (const entry of entries) {\n if ((entry.header.type === \"file\" || entry.header.type === undefined) && entry.data) {\n filesMap.set(entry.header.name, Buffer.from(entry.data));\n }\n }\n this._rxpCache = new RXPImpl(filesMap);\n return this._rxpCache;\n }\n}\nfunction isBufferInput(input) {\n return \"buffer\" in input && Buffer.isBuffer(input.buffer);\n}\nasync function createRXA(input) {\n if (isBufferInput(input)) {\n return new RXAImpl(input.buffer);\n }\n const entries = Object.entries(input).map(([name, content]) => {\n const body = typeof content === \"string\" ? content : content instanceof Uint8Array ? content : new Uint8Array(content);\n const size = typeof content === \"string\" ? Buffer.byteLength(content) : content.length;\n return {\n header: { name, size, type: \"file\" },\n body\n };\n });\n const tarBuffer = await packTar(entries);\n const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));\n return new RXAImpl(gzipBuffer);\n}\n\n// src/FolderLoader.ts\nclass FolderLoader {\n async canLoad(source) {\n try {\n const stats = await stat(source);\n if (!stats.isDirectory()) {\n return false;\n }\n const manifestPath = join(source, \"resource.json\");\n const manifestStats = await stat(manifestPath);\n return manifestStats.isFile();\n } catch {\n return false;\n }\n }\n async load(folderPath) {\n const manifestPath = join(folderPath, \"resource.json\");\n let manifestJson;\n try {\n manifestJson = await readFile(manifestPath, \"utf-8\");\n } catch (error) {\n throw new ResourceXError(`Failed to read resource.json: ${error instanceof Error ? error.message : String(error)}`);\n }\n let manifestData;\n try {\n manifestData = JSON.parse(manifestJson);\n } catch (error) {\n throw new ResourceXError(`Invalid JSON in resource.json: ${error instanceof Error ? error.message : String(error)}`);\n }\n if (!manifestData.name) {\n throw new ResourceXError(\"Invalid resource.json: missing required field 'name'\");\n }\n if (!manifestData.type) {\n throw new ResourceXError(\"Invalid resource.json: missing required field 'type'\");\n }\n if (!manifestData.version) {\n throw new ResourceXError(\"Invalid resource.json: missing required field 'version'\");\n }\n const manifest = createRXM({\n domain: manifestData.domain ?? \"localhost\",\n path: manifestData.path,\n name: manifestData.name,\n type: manifestData.type,\n version: manifestData.version\n });\n const files = await this.readFolderFiles(folderPath);\n if (Object.keys(files).length === 0) {\n throw new ResourceXError(\"No content files found in resource folder\");\n }\n const archive = await createRXA(files);\n const locator = parseRXL(manifest.toLocator());\n return {\n locator,\n manifest,\n archive\n };\n }\n async readFolderFiles(folderPath, basePath = folderPath) {\n const files = {};\n const entries = await readdir(folderPath, { withFileTypes: true });\n for (const entry of entries) {\n const fullPath = join(folderPath, entry.name);\n const relativePath = relative(basePath, fullPath);\n if (relativePath === \"resource.json\") {\n continue;\n }\n if (entry.isFile()) {\n files[relativePath] = await readFile(fullPath);\n } else if (entry.isDirectory()) {\n const subFiles = await this.readFolderFiles(fullPath, basePath);\n Object.assign(files, subFiles);\n }\n }\n return files;\n }\n}\n// src/loadResource.ts\nasync function loadResource(source, config) {\n const loader = config?.loader ?? new FolderLoader;\n const canLoad = await loader.canLoad(source);\n if (!canLoad) {\n throw new ResourceXError(`Cannot load resource from: ${source}`);\n }\n return loader.load(source);\n}\nexport {\n loadResource,\n FolderLoader\n};\n\n//# debugId=3088D1AACA1476C364756E2164756E21\n",
|
|
9
|
-
"import { homedir } from \"node:os\";\nimport { join, resolve as resolvePath } from \"node:path\";\nimport { symlink, lstat, readlink } from \"node:fs/promises\";\nimport type { RXR, RXL } from \"@resourcexjs/core\";\nimport { parseRXL, createRXM, createRXA } from \"@resourcexjs/core\";\nimport { createARP, type ARP } from \"@resourcexjs/arp\";\nimport { loadResource } from \"@resourcexjs/loader\";\nimport { RegistryError } from \"../errors.js\";\nimport type { Storage, SearchOptions } from \"./Storage.js\";\n\nconst DEFAULT_PATH = `${homedir()}/.resourcex`;\n\n/**\n * LocalStorage configuration.\n */\nexport interface LocalStorageConfig {\n /**\n * Base path for storage. Defaults to ~/.resourcex\n */\n path?: string;\n}\n\n/**\n * Local filesystem storage implementation.\n * Uses ARP file transport for I/O operations.\n *\n * Storage structure:\n * - {basePath}/{domain}/{path}/{name}.{type}/{version}/\n * - manifest.json\n * - archive.tar.gz\n *\n * For localhost/no-domain resources:\n * - {basePath}/localhost/{name}.{type}/{version}/\n */\nexport class LocalStorage implements Storage {\n readonly type = \"local\";\n private readonly basePath: string;\n private readonly arp: ARP;\n\n constructor(config?: LocalStorageConfig) {\n this.basePath = config?.path ?? DEFAULT_PATH;\n this.arp = createARP();\n }\n\n /**\n * Create ARP URL for a file path.\n */\n private toArpUrl(filePath: string): string {\n return `arp:binary:file://${filePath}`;\n }\n\n /**\n * Build filesystem path for a resource.\n * Path: {basePath}/{domain}/{path}/{name}.{type}/{version}\n */\n private buildPath(locator: string | RXL): string {\n const rxl = typeof locator === \"string\" ? parseRXL(locator) : locator;\n const domain = rxl.domain ?? \"localhost\";\n const resourceName = rxl.type ? `${rxl.name}.${rxl.type}` : rxl.name;\n const version = rxl.version ?? \"latest\";\n\n let path = join(this.basePath, domain);\n if (rxl.path) {\n path = join(path, rxl.path);\n }\n return join(path, resourceName, version);\n }\n\n /**\n * Check if a resource exists at a specific path.\n * Handles both regular storage (manifest.json) and symlinked dev directories (resource.json).\n */\n private async existsAt(resourcePath: string): Promise<boolean> {\n // Check if path is a symlink (created by link())\n if (await this.isSymlink(resourcePath)) {\n // For symlinks, check if resource.json exists in the linked directory\n const targetPath = await readlink(resourcePath);\n const resourceJsonPath = join(targetPath, \"resource.json\");\n const arl = this.arp.parse(this.toArpUrl(resourceJsonPath));\n return arl.exists();\n }\n\n // Regular storage: check for manifest.json\n const manifestPath = join(resourcePath, \"manifest.json\");\n const arl = this.arp.parse(this.toArpUrl(manifestPath));\n return arl.exists();\n }\n\n /**\n * Check if a path is a symlink.\n */\n private async isSymlink(path: string): Promise<boolean> {\n try {\n const stats = await lstat(path);\n return stats.isSymbolicLink();\n } catch {\n return false;\n }\n }\n\n /**\n * Load resource from a specific path.\n * If path is a symlink, loads from the linked directory.\n */\n private async loadFrom(resourcePath: string): Promise<RXR> {\n // Check if this is a symlink (created by link())\n if (await this.isSymlink(resourcePath)) {\n const targetPath = await readlink(resourcePath);\n return loadResource(targetPath);\n }\n\n // Regular resource: read manifest and archive\n const manifestPath = join(resourcePath, \"manifest.json\");\n const manifestArl = this.arp.parse(this.toArpUrl(manifestPath));\n const manifestResource = await manifestArl.resolve();\n const manifestContent = (manifestResource.content as Buffer).toString(\"utf-8\");\n const manifestData = JSON.parse(manifestContent);\n const manifest = createRXM(manifestData);\n\n // Read archive\n const archivePath = join(resourcePath, \"archive.tar.gz\");\n const archiveArl = this.arp.parse(this.toArpUrl(archivePath));\n const archiveResource = await archiveArl.resolve();\n const data = archiveResource.content as Buffer;\n\n return {\n locator: parseRXL(manifest.toLocator()),\n manifest,\n archive: await createRXA({ buffer: data }),\n };\n }\n\n async get(locator: string): Promise<RXR> {\n const resourcePath = this.buildPath(locator);\n\n if (!(await this.existsAt(resourcePath))) {\n throw new RegistryError(`Resource not found: ${locator}`);\n }\n\n return this.loadFrom(resourcePath);\n }\n\n async put(rxr: RXR): Promise<void> {\n const locator = rxr.manifest.toLocator();\n const resourcePath = this.buildPath(locator);\n\n // Remove existing symlink if any\n if (await this.isSymlink(resourcePath)) {\n const arl = this.arp.parse(this.toArpUrl(resourcePath));\n await arl.delete();\n }\n\n // Ensure directory exists\n const dirArl = this.arp.parse(this.toArpUrl(resourcePath));\n await dirArl.mkdir();\n\n // Write manifest\n const manifestPath = join(resourcePath, \"manifest.json\");\n const manifestArl = this.arp.parse(this.toArpUrl(manifestPath));\n const manifestContent = Buffer.from(JSON.stringify(rxr.manifest.toJSON(), null, 2), \"utf-8\");\n await manifestArl.deposit(manifestContent);\n\n // Write archive\n const archivePath = join(resourcePath, \"archive.tar.gz\");\n const archiveArl = this.arp.parse(this.toArpUrl(archivePath));\n const archiveBuffer = await rxr.archive.buffer();\n await archiveArl.deposit(archiveBuffer);\n }\n\n async exists(locator: string): Promise<boolean> {\n const resourcePath = this.buildPath(locator);\n return this.existsAt(resourcePath);\n }\n\n async delete(locator: string): Promise<void> {\n const resourcePath = this.buildPath(locator);\n\n if (await this.existsAt(resourcePath)) {\n const arl = this.arp.parse(this.toArpUrl(resourcePath));\n await arl.delete();\n }\n }\n\n async search(options?: SearchOptions): Promise<RXL[]> {\n const { query, limit, offset = 0 } = options ?? {};\n const locators: RXL[] = [];\n\n // Scan base directory recursively for manifest.json files\n try {\n const baseArl = this.arp.parse(this.toArpUrl(this.basePath));\n const entries = await baseArl.list({ recursive: true, pattern: \"*.json\" });\n\n for (const entry of entries) {\n if (!entry.endsWith(\"manifest.json\")) continue;\n const rxl = this.parseEntryToRXL(entry);\n if (rxl) locators.push(rxl);\n }\n } catch {\n // Directory doesn't exist\n return [];\n }\n\n // Filter by query\n let filtered = locators;\n if (query) {\n const lowerQuery = query.toLowerCase();\n filtered = locators.filter((rxl) => {\n const searchText =\n `${rxl.domain ?? \"\"} ${rxl.path ?? \"\"} ${rxl.name} ${rxl.type ?? \"\"}`.toLowerCase();\n return searchText.includes(lowerQuery);\n });\n }\n\n // Apply pagination\n let result = filtered.slice(offset);\n if (limit !== undefined) {\n result = result.slice(0, limit);\n }\n\n return result;\n }\n\n /**\n * Link a development directory.\n * Creates a symlink so changes are reflected immediately.\n */\n async link(path: string): Promise<void> {\n // Load resource from directory to get locator info\n const rxr = await loadResource(path);\n const locator = rxr.manifest.toLocator();\n const resourcePath = this.buildPath(locator);\n\n // Remove existing if any\n try {\n const arl = this.arp.parse(this.toArpUrl(resourcePath));\n if (await arl.exists()) {\n await arl.delete();\n }\n } catch {\n // Ignore\n }\n\n // Ensure parent directory exists\n const parentPath = join(resourcePath, \"..\");\n const parentArl = this.arp.parse(this.toArpUrl(parentPath));\n await parentArl.mkdir();\n\n // Create symlink to absolute path\n const absolutePath = resolvePath(path);\n await symlink(absolutePath, resourcePath);\n }\n\n /**\n * Parse entry path to RXL.\n * Entry format: {domain}/{path}/{name}.{type}/{version}/manifest.json\n */\n private parseEntryToRXL(entry: string): RXL | null {\n // Remove /manifest.json suffix\n const dirPath = entry.replace(/[/\\\\]manifest\\.json$/, \"\");\n const parts = dirPath.split(/[/\\\\]/);\n\n if (parts.length < 3) {\n // Need at least: domain, name.type, version\n return null;\n }\n\n // Last part is version\n const version = parts.pop()!;\n // Second to last is {name}.{type}\n const nameTypePart = parts.pop()!;\n // First part is domain\n const domain = parts.shift()!;\n // Remaining parts are path (if any)\n const path = parts.length > 0 ? parts.join(\"/\") : undefined;\n\n // Split name and type\n const dotIndex = nameTypePart.lastIndexOf(\".\");\n let name: string;\n let type: string | undefined;\n\n if (dotIndex !== -1) {\n name = nameTypePart.substring(0, dotIndex);\n type = nameTypePart.substring(dotIndex + 1);\n } else {\n name = nameTypePart;\n type = undefined;\n }\n\n // Construct locator string\n let locatorStr = domain;\n if (path) locatorStr += `/${path}`;\n locatorStr += `/${name}`;\n if (type) locatorStr += `.${type}`;\n locatorStr += `@${version}`;\n\n try {\n return parseRXL(locatorStr);\n } catch {\n return null;\n }\n }\n}\n",
|
|
10
|
-
"// src/errors.ts\nclass ARPError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ARPError\";\n }\n}\n\nclass ParseError extends ARPError {\n url;\n constructor(message, url) {\n super(message);\n this.url = url;\n this.name = \"ParseError\";\n }\n}\n\nclass TransportError extends ARPError {\n transport;\n constructor(message, transport, options) {\n super(message, options);\n this.transport = transport;\n this.name = \"TransportError\";\n }\n}\n\nclass SemanticError extends ARPError {\n semantic;\n constructor(message, semantic, options) {\n super(message, options);\n this.semantic = semantic;\n this.name = \"SemanticError\";\n }\n}\n\n// src/ARL.ts\nclass ARL {\n semantic;\n transport;\n location;\n resolver;\n constructor(semantic, transport, location, resolver) {\n this.semantic = semantic;\n this.transport = transport;\n this.location = location;\n this.resolver = resolver;\n }\n createContext(params) {\n return {\n url: this.toString(),\n semantic: this.semantic,\n transport: this.transport,\n location: this.location,\n timestamp: new Date,\n params\n };\n }\n async resolve(params) {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext(params);\n return semantic.resolve(transport, this.location, context);\n }\n async deposit(data, params) {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext(params);\n if (!semantic.deposit) {\n throw new SemanticError(`Semantic \"${semantic.name}\" does not support deposit operation`, this.semantic);\n }\n await semantic.deposit(transport, this.location, data, context);\n }\n async exists() {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext();\n if (semantic.exists) {\n return semantic.exists(transport, this.location, context);\n }\n return transport.exists(this.location);\n }\n async delete() {\n const transport = this.resolver.getTransportHandler(this.transport);\n const semantic = this.resolver.getSemanticHandler(this.semantic);\n const context = this.createContext();\n if (semantic.delete) {\n return semantic.delete(transport, this.location, context);\n }\n await transport.delete(this.location);\n }\n async list(options) {\n const transport = this.resolver.getTransportHandler(this.transport);\n if (!transport.list) {\n throw new TransportError(`Transport \"${transport.name}\" does not support list operation`, this.transport);\n }\n return transport.list(this.location, options);\n }\n async mkdir() {\n const transport = this.resolver.getTransportHandler(this.transport);\n if (!transport.mkdir) {\n throw new TransportError(`Transport \"${transport.name}\" does not support mkdir operation`, this.transport);\n }\n await transport.mkdir(this.location);\n }\n toString() {\n return `arp:${this.semantic}:${this.transport}://${this.location}`;\n }\n}\n\n// src/transport/file.ts\nimport { readFile, writeFile, readdir, mkdir, rm, access, stat } from \"node:fs/promises\";\nimport { resolve, dirname, join } from \"node:path\";\nclass FileTransportHandler {\n name = \"file\";\n resolvePath(location) {\n return resolve(process.cwd(), location);\n }\n async get(location, params) {\n const filePath = this.resolvePath(location);\n try {\n const stats = await stat(filePath);\n if (stats.isDirectory()) {\n return this.getDirectory(filePath, stats, params);\n } else {\n return this.getFile(filePath, stats);\n }\n } catch (error) {\n const err = error;\n throw new TransportError(`File get error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async getFile(filePath, stats) {\n const content = await readFile(filePath);\n return {\n content,\n metadata: {\n type: \"file\",\n size: Number(stats.size),\n modifiedAt: stats.mtime\n }\n };\n }\n async getDirectory(dirPath, stats, params) {\n const recursive = params?.recursive === \"true\";\n const pattern = params?.pattern;\n let entries;\n if (recursive) {\n entries = await this.listRecursive(dirPath, dirPath);\n } else {\n entries = await readdir(dirPath);\n }\n if (pattern) {\n entries = this.filterByPattern(entries, pattern);\n }\n const content = Buffer.from(JSON.stringify(entries));\n return {\n content,\n metadata: {\n type: \"directory\",\n modifiedAt: stats.mtime\n }\n };\n }\n async listRecursive(basePath, currentPath) {\n const entries = await readdir(currentPath, { withFileTypes: true });\n const results = [];\n for (const entry of entries) {\n const fullPath = join(currentPath, entry.name);\n const relativePath = fullPath.substring(basePath.length + 1);\n if (entry.isDirectory()) {\n const subEntries = await this.listRecursive(basePath, fullPath);\n results.push(...subEntries);\n } else {\n results.push(relativePath);\n }\n }\n return results;\n }\n filterByPattern(entries, pattern) {\n const regexPattern = pattern.replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\").replace(/\\?/g, \".\");\n const regex = new RegExp(`^${regexPattern}$`);\n return entries.filter((entry) => {\n const filename = entry.split(\"/\").pop() || entry;\n return regex.test(filename);\n });\n }\n async set(location, content, _params) {\n const filePath = this.resolvePath(location);\n try {\n await mkdir(dirname(filePath), { recursive: true });\n await writeFile(filePath, content);\n } catch (error) {\n const err = error;\n throw new TransportError(`File set error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async exists(location) {\n const filePath = this.resolvePath(location);\n try {\n await access(filePath);\n return true;\n } catch {\n return false;\n }\n }\n async delete(location) {\n const filePath = this.resolvePath(location);\n try {\n await rm(filePath, { recursive: true });\n } catch (error) {\n const err = error;\n if (err.code === \"ENOENT\") {\n return;\n }\n throw new TransportError(`File delete error: ${err.code} - ${filePath}`, this.name, {\n cause: err\n });\n }\n }\n async list(location, options) {\n const dirPath = this.resolvePath(location);\n try {\n let entries;\n if (options?.recursive) {\n entries = await this.listRecursive(dirPath, dirPath);\n } else {\n entries = await readdir(dirPath);\n }\n if (options?.pattern) {\n entries = this.filterByPattern(entries, options.pattern);\n }\n return entries;\n } catch (error) {\n const err = error;\n throw new TransportError(`File list error: ${err.code} - ${dirPath}`, this.name, {\n cause: err\n });\n }\n }\n async mkdir(location) {\n const dirPath = this.resolvePath(location);\n try {\n await mkdir(dirPath, { recursive: true });\n } catch (error) {\n const err = error;\n throw new TransportError(`File mkdir error: ${err.code} - ${dirPath}`, this.name, {\n cause: err\n });\n }\n }\n}\nvar fileTransport = new FileTransportHandler;\n// src/transport/http.ts\nclass HttpTransportHandler {\n name;\n protocol;\n constructor(protocol = \"https\") {\n this.protocol = protocol;\n this.name = protocol;\n }\n async get(location, params) {\n const url = this.buildUrl(location, params);\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new TransportError(`HTTP ${response.status}: ${response.statusText} - ${url}`, this.name);\n }\n const arrayBuffer = await response.arrayBuffer();\n const content = Buffer.from(arrayBuffer);\n const contentType = response.headers.get(\"content-type\");\n const contentLength = response.headers.get(\"content-length\");\n const lastModified = response.headers.get(\"last-modified\");\n return {\n content,\n metadata: {\n type: \"file\",\n size: contentLength ? parseInt(contentLength, 10) : content.length,\n modifiedAt: lastModified ? new Date(lastModified) : undefined,\n contentType\n }\n };\n } catch (error) {\n if (error instanceof TransportError) {\n throw error;\n }\n throw new TransportError(`Network error: ${url}`, this.name, {\n cause: error\n });\n }\n }\n buildUrl(location, params) {\n const url = new URL(`${this.protocol}://${location}`);\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n url.searchParams.set(key, value);\n }\n }\n return url.toString();\n }\n async set(_location, _content, _params) {\n throw new TransportError(\"HTTP transport is read-only, set not supported\", this.name);\n }\n async exists(location) {\n const url = `${this.protocol}://${location}`;\n try {\n const response = await fetch(url, { method: \"HEAD\" });\n return response.ok;\n } catch {\n return false;\n }\n }\n async delete(_location) {\n throw new TransportError(\"HTTP transport is read-only, delete not supported\", this.name);\n }\n}\nvar httpsTransport = new HttpTransportHandler(\"https\");\nvar httpTransport = new HttpTransportHandler(\"http\");\n// src/semantic/text.ts\nclass TextSemanticHandler {\n name = \"text\";\n async resolve(transport, location, context) {\n const result = await transport.get(location, context.params);\n if (result.metadata?.type === \"directory\") {\n const meta2 = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: result.content.length,\n encoding: \"utf-8\",\n mimeType: \"application/json\",\n resolvedAt: context.timestamp.toISOString(),\n type: \"directory\"\n };\n return {\n type: \"text\",\n content: result.content.toString(\"utf-8\"),\n meta: meta2\n };\n }\n const text = result.content.toString(\"utf-8\");\n const meta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: result.metadata?.size ?? result.content.length,\n encoding: \"utf-8\",\n mimeType: \"text/plain\",\n resolvedAt: context.timestamp.toISOString(),\n type: \"file\"\n };\n return {\n type: \"text\",\n content: text,\n meta\n };\n }\n async deposit(transport, location, data, context) {\n const buffer = Buffer.from(data, \"utf-8\");\n try {\n await transport.set(location, buffer, context.params);\n } catch (error) {\n throw new SemanticError(`Failed to deposit text to \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n async exists(transport, location, _context) {\n return transport.exists(location);\n }\n async delete(transport, location, _context) {\n try {\n await transport.delete(location);\n } catch (error) {\n throw new SemanticError(`Failed to delete \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n}\nvar textSemantic = new TextSemanticHandler;\n// src/semantic/binary.ts\nfunction toBuffer(data) {\n if (Buffer.isBuffer(data)) {\n return data;\n }\n if (data instanceof Uint8Array) {\n return Buffer.from(data);\n }\n if (data instanceof ArrayBuffer) {\n return Buffer.from(data);\n }\n if (Array.isArray(data)) {\n return Buffer.from(data);\n }\n throw new SemanticError(`Unsupported binary input type`, \"binary\");\n}\n\nclass BinarySemanticHandler {\n name = \"binary\";\n async resolve(transport, location, context) {\n const result = await transport.get(location, context.params);\n const meta = {\n url: context.url,\n semantic: context.semantic,\n transport: context.transport,\n location: context.location,\n size: result.metadata?.size ?? result.content.length,\n resolvedAt: context.timestamp.toISOString(),\n type: result.metadata?.type\n };\n return {\n type: \"binary\",\n content: result.content,\n meta\n };\n }\n async deposit(transport, location, data, context) {\n const buffer = toBuffer(data);\n try {\n await transport.set(location, buffer, context.params);\n } catch (error) {\n throw new SemanticError(`Failed to deposit binary to \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n async exists(transport, location, _context) {\n return transport.exists(location);\n }\n async delete(transport, location, _context) {\n try {\n await transport.delete(location);\n } catch (error) {\n throw new SemanticError(`Failed to delete \"${location}\": ${error.message}`, this.name, { cause: error });\n }\n }\n}\nvar binarySemantic = new BinarySemanticHandler;\n// src/ARP.ts\nclass ARP {\n transports;\n semantics;\n constructor(config = {}) {\n this.transports = new Map;\n this.semantics = new Map;\n const defaultTransports = [fileTransport, httpTransport, httpsTransport];\n const defaultSemantics = [textSemantic, binarySemantic];\n for (const handler of defaultTransports) {\n this.transports.set(handler.name, handler);\n }\n for (const handler of defaultSemantics) {\n this.semantics.set(handler.name, handler);\n }\n if (config.transports) {\n for (const handler of config.transports) {\n this.transports.set(handler.name, handler);\n }\n }\n if (config.semantics) {\n for (const handler of config.semantics) {\n this.semantics.set(handler.name, handler);\n }\n }\n }\n registerTransport(handler) {\n this.transports.set(handler.name, handler);\n }\n registerSemantic(handler) {\n this.semantics.set(handler.name, handler);\n }\n getTransportHandler(name) {\n const handler = this.transports.get(name);\n if (!handler) {\n throw new TransportError(`Unsupported transport type: ${name}`, name);\n }\n return handler;\n }\n getSemanticHandler(name) {\n const handler = this.semantics.get(name);\n if (!handler) {\n throw new SemanticError(`Unsupported semantic type: ${name}`, name);\n }\n return handler;\n }\n parse(url) {\n if (!url.startsWith(\"arp:\")) {\n throw new ParseError(`Invalid ARP URL: must start with \"arp:\"`, url);\n }\n const content = url.substring(4);\n const separatorIndex = content.indexOf(\"://\");\n if (separatorIndex === -1) {\n throw new ParseError(`Invalid ARP URL: missing \"://\"`, url);\n }\n const typePart = content.substring(0, separatorIndex);\n const location = content.substring(separatorIndex + 3);\n const colonIndex = typePart.indexOf(\":\");\n if (colonIndex === -1) {\n throw new ParseError(`Invalid ARP URL: must have exactly 2 types (semantic:transport)`, url);\n }\n const semantic = typePart.substring(0, colonIndex);\n const transport = typePart.substring(colonIndex + 1);\n if (!semantic) {\n throw new ParseError(`Invalid ARP URL: semantic type cannot be empty`, url);\n }\n if (!transport) {\n throw new ParseError(`Invalid ARP URL: transport type cannot be empty`, url);\n }\n if (!location) {\n throw new ParseError(`Invalid ARP URL: location cannot be empty`, url);\n }\n this.getTransportHandler(transport);\n this.getSemanticHandler(semantic);\n return new ARL(semantic, transport, location, this);\n }\n}\nfunction createARP(config) {\n return new ARP(config);\n}\n\n// src/index.ts\nvar VERSION = \"2.4.1\";\nexport {\n textSemantic,\n httpsTransport,\n httpTransport,\n fileTransport,\n createARP,\n binarySemantic,\n VERSION,\n TransportError,\n TextSemanticHandler,\n SemanticError,\n ParseError,\n HttpTransportHandler,\n FileTransportHandler,\n BinarySemanticHandler,\n ARPError,\n ARP\n};\n\n//# debugId=BB58C24E142E2F3264756E2164756E21\n",
|
|
5
|
+
"// src/errors.ts\nclass ResourceXError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\n\nclass LocatorError extends ResourceXError {\n locator;\n constructor(message, locator) {\n super(message);\n this.locator = locator;\n this.name = \"LocatorError\";\n }\n}\n\nclass ManifestError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"ManifestError\";\n }\n}\n\nclass ContentError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"ContentError\";\n }\n}\n\nclass DefinitionError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"DefinitionError\";\n }\n}\n// src/primitives/define.ts\nfunction define(input) {\n if (input === null || typeof input !== \"object\") {\n throw new DefinitionError(\"definition must be an object\");\n }\n const obj = input;\n if (!obj.name || typeof obj.name !== \"string\") {\n throw new DefinitionError(\"name is required\");\n }\n if (!obj.type || typeof obj.type !== \"string\") {\n throw new DefinitionError(\"type is required\");\n }\n if (!obj.version || typeof obj.version !== \"string\") {\n throw new DefinitionError(\"version is required\");\n }\n const rxd = {\n ...obj,\n name: obj.name,\n type: obj.type,\n version: obj.version,\n domain: typeof obj.domain === \"string\" ? obj.domain : \"localhost\",\n path: typeof obj.path === \"string\" ? obj.path : undefined,\n description: typeof obj.description === \"string\" ? obj.description : undefined,\n author: typeof obj.author === \"string\" ? obj.author : undefined,\n license: typeof obj.license === \"string\" ? obj.license : undefined,\n keywords: Array.isArray(obj.keywords) ? obj.keywords : undefined,\n repository: typeof obj.repository === \"string\" ? obj.repository : undefined\n };\n return rxd;\n}\n// src/primitives/manifest.ts\nfunction manifest(rxd) {\n return {\n domain: rxd.domain,\n path: rxd.path,\n name: rxd.name,\n type: rxd.type,\n version: rxd.version\n };\n}\n// src/primitives/archive.ts\nimport { gzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\n\n// ../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/unpacker-BpPBxY8N.js\nvar BLOCK_SIZE = 512;\nvar BLOCK_SIZE_MASK = 511;\nvar DEFAULT_FILE_MODE = 420;\nvar DEFAULT_DIR_MODE = 493;\nvar USTAR_NAME_OFFSET = 0;\nvar USTAR_NAME_SIZE = 100;\nvar USTAR_MODE_OFFSET = 100;\nvar USTAR_MODE_SIZE = 8;\nvar USTAR_UID_OFFSET = 108;\nvar USTAR_UID_SIZE = 8;\nvar USTAR_GID_OFFSET = 116;\nvar USTAR_GID_SIZE = 8;\nvar USTAR_SIZE_OFFSET = 124;\nvar USTAR_SIZE_SIZE = 12;\nvar USTAR_MTIME_OFFSET = 136;\nvar USTAR_MTIME_SIZE = 12;\nvar USTAR_CHECKSUM_OFFSET = 148;\nvar USTAR_CHECKSUM_SIZE = 8;\nvar USTAR_TYPEFLAG_OFFSET = 156;\nvar USTAR_TYPEFLAG_SIZE = 1;\nvar USTAR_LINKNAME_OFFSET = 157;\nvar USTAR_LINKNAME_SIZE = 100;\nvar USTAR_MAGIC_OFFSET = 257;\nvar USTAR_MAGIC_SIZE = 6;\nvar USTAR_VERSION_OFFSET = 263;\nvar USTAR_VERSION_SIZE = 2;\nvar USTAR_UNAME_OFFSET = 265;\nvar USTAR_UNAME_SIZE = 32;\nvar USTAR_GNAME_OFFSET = 297;\nvar USTAR_GNAME_SIZE = 32;\nvar USTAR_PREFIX_OFFSET = 345;\nvar USTAR_PREFIX_SIZE = 155;\nvar USTAR_VERSION = \"00\";\nvar USTAR_MAX_UID_GID = 2097151;\nvar USTAR_MAX_SIZE = 8589934591;\nvar FILE = \"file\";\nvar LINK = \"link\";\nvar SYMLINK = \"symlink\";\nvar DIRECTORY = \"directory\";\nvar TYPEFLAG = {\n file: \"0\",\n link: \"1\",\n symlink: \"2\",\n \"character-device\": \"3\",\n \"block-device\": \"4\",\n directory: \"5\",\n fifo: \"6\",\n \"pax-header\": \"x\",\n \"pax-global-header\": \"g\",\n \"gnu-long-name\": \"L\",\n \"gnu-long-link-name\": \"K\"\n};\nvar FLAGTYPE = {\n \"0\": FILE,\n \"1\": LINK,\n \"2\": SYMLINK,\n \"3\": \"character-device\",\n \"4\": \"block-device\",\n \"5\": DIRECTORY,\n \"6\": \"fifo\",\n x: \"pax-header\",\n g: \"pax-global-header\",\n L: \"gnu-long-name\",\n K: \"gnu-long-link-name\"\n};\nvar ZERO_BLOCK = new Uint8Array(BLOCK_SIZE);\nvar EMPTY = new Uint8Array(0);\nvar encoder = new TextEncoder;\nvar decoder = new TextDecoder;\nfunction writeString(view, offset, size, value) {\n if (value)\n encoder.encodeInto(value, view.subarray(offset, offset + size));\n}\nfunction writeOctal(view, offset, size, value) {\n if (value === undefined)\n return;\n const octalString = value.toString(8).padStart(size - 1, \"0\");\n encoder.encodeInto(octalString, view.subarray(offset, offset + size - 1));\n}\nfunction readString(view, offset, size) {\n const end = view.indexOf(0, offset);\n const sliceEnd = end === -1 || end > offset + size ? offset + size : end;\n return decoder.decode(view.subarray(offset, sliceEnd));\n}\nfunction readOctal(view, offset, size) {\n let value = 0;\n const end = offset + size;\n for (let i = offset;i < end; i++) {\n const charCode = view[i];\n if (charCode === 0)\n break;\n if (charCode === 32)\n continue;\n value = value * 8 + (charCode - 48);\n }\n return value;\n}\nfunction readNumeric(view, offset, size) {\n if (view[offset] & 128) {\n let result = 0;\n result = view[offset] & 127;\n for (let i = 1;i < size; i++)\n result = result * 256 + view[offset + i];\n if (!Number.isSafeInteger(result))\n throw new Error(\"TAR number too large\");\n return result;\n }\n return readOctal(view, offset, size);\n}\nvar isBodyless = (header) => header.type === DIRECTORY || header.type === SYMLINK || header.type === LINK;\nasync function normalizeBody(body) {\n if (body === null || body === undefined)\n return EMPTY;\n if (body instanceof Uint8Array)\n return body;\n if (typeof body === \"string\")\n return encoder.encode(body);\n if (body instanceof ArrayBuffer)\n return new Uint8Array(body);\n if (body instanceof Blob)\n return new Uint8Array(await body.arrayBuffer());\n throw new TypeError(\"Unsupported content type for entry body.\");\n}\nfunction transformHeader(header, options) {\n const { strip, filter, map } = options;\n if (!strip && !filter && !map)\n return header;\n const h = { ...header };\n if (strip && strip > 0) {\n const components = h.name.split(\"/\").filter(Boolean);\n if (strip >= components.length)\n return null;\n const newName = components.slice(strip).join(\"/\");\n h.name = h.type === DIRECTORY && !newName.endsWith(\"/\") ? `${newName}/` : newName;\n if (h.linkname?.startsWith(\"/\")) {\n const linkComponents = h.linkname.split(\"/\").filter(Boolean);\n h.linkname = strip >= linkComponents.length ? \"/\" : `/${linkComponents.slice(strip).join(\"/\")}`;\n }\n }\n if (filter?.(h) === false)\n return null;\n const result = map ? map(h) : h;\n if (result && (!result.name || !result.name.trim() || result.name === \".\" || result.name === \"/\"))\n return null;\n return result;\n}\nvar CHECKSUM_SPACE = 32;\nvar ASCII_ZERO = 48;\nfunction validateChecksum(block) {\n const stored = readOctal(block, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_SIZE);\n let sum = 0;\n for (let i = 0;i < block.length; i++)\n if (i >= USTAR_CHECKSUM_OFFSET && i < USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE)\n sum += CHECKSUM_SPACE;\n else\n sum += block[i];\n return stored === sum;\n}\nfunction writeChecksum(block) {\n block.fill(CHECKSUM_SPACE, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE);\n let checksum = 0;\n for (const byte of block)\n checksum += byte;\n for (let i = USTAR_CHECKSUM_OFFSET + 6 - 1;i >= USTAR_CHECKSUM_OFFSET; i--) {\n block[i] = (checksum & 7) + ASCII_ZERO;\n checksum >>= 3;\n }\n block[USTAR_CHECKSUM_OFFSET + 6] = 0;\n block[USTAR_CHECKSUM_OFFSET + 7] = CHECKSUM_SPACE;\n}\nfunction generatePax(header) {\n const paxRecords = {};\n if (header.name.length > USTAR_NAME_SIZE) {\n if (findUstarSplit(header.name) === null)\n paxRecords.path = header.name;\n }\n if (header.linkname && header.linkname.length > USTAR_NAME_SIZE)\n paxRecords.linkpath = header.linkname;\n if (header.uname && header.uname.length > USTAR_UNAME_SIZE)\n paxRecords.uname = header.uname;\n if (header.gname && header.gname.length > USTAR_GNAME_SIZE)\n paxRecords.gname = header.gname;\n if (header.uid != null && header.uid > USTAR_MAX_UID_GID)\n paxRecords.uid = String(header.uid);\n if (header.gid != null && header.gid > USTAR_MAX_UID_GID)\n paxRecords.gid = String(header.gid);\n if (header.size != null && header.size > USTAR_MAX_SIZE)\n paxRecords.size = String(header.size);\n if (header.pax)\n Object.assign(paxRecords, header.pax);\n const paxEntries = Object.entries(paxRecords);\n if (paxEntries.length === 0)\n return null;\n const paxBody = encoder.encode(paxEntries.map(([key, value]) => {\n const record = `${key}=${value}\n`;\n const partLength = encoder.encode(record).length + 1;\n let totalLength = partLength + String(partLength).length;\n totalLength = partLength + String(totalLength).length;\n return `${totalLength} ${record}`;\n }).join(\"\"));\n return {\n paxHeader: createTarHeader({\n name: decoder.decode(encoder.encode(`PaxHeader/${header.name}`).slice(0, 100)),\n size: paxBody.length,\n type: \"pax-header\",\n mode: 420,\n mtime: header.mtime,\n uname: header.uname,\n gname: header.gname,\n uid: header.uid,\n gid: header.gid\n }),\n paxBody\n };\n}\nfunction findUstarSplit(path) {\n if (path.length <= USTAR_NAME_SIZE)\n return null;\n const minSlashIndex = path.length - USTAR_NAME_SIZE - 1;\n const slashIndex = path.lastIndexOf(\"/\", USTAR_PREFIX_SIZE);\n if (slashIndex > 0 && slashIndex >= minSlashIndex)\n return {\n prefix: path.slice(0, slashIndex),\n name: path.slice(slashIndex + 1)\n };\n return null;\n}\nfunction createTarHeader(header) {\n const view = new Uint8Array(BLOCK_SIZE);\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n let name = header.name;\n let prefix = \"\";\n if (!header.pax?.path) {\n const split = findUstarSplit(name);\n if (split) {\n name = split.name;\n prefix = split.prefix;\n }\n }\n writeString(view, USTAR_NAME_OFFSET, USTAR_NAME_SIZE, name);\n writeOctal(view, USTAR_MODE_OFFSET, USTAR_MODE_SIZE, header.mode ?? (header.type === DIRECTORY ? DEFAULT_DIR_MODE : DEFAULT_FILE_MODE));\n writeOctal(view, USTAR_UID_OFFSET, USTAR_UID_SIZE, header.uid ?? 0);\n writeOctal(view, USTAR_GID_OFFSET, USTAR_GID_SIZE, header.gid ?? 0);\n writeOctal(view, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE, size);\n writeOctal(view, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE, Math.floor((header.mtime?.getTime() ?? Date.now()) / 1000));\n writeString(view, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE, TYPEFLAG[header.type ?? FILE]);\n writeString(view, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE, header.linkname);\n writeString(view, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE, \"ustar\\x00\");\n writeString(view, USTAR_VERSION_OFFSET, USTAR_VERSION_SIZE, USTAR_VERSION);\n writeString(view, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE, header.uname);\n writeString(view, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE, header.gname);\n writeString(view, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE, prefix);\n writeChecksum(view);\n return view;\n}\nfunction parseUstarHeader(block, strict) {\n if (strict && !validateChecksum(block))\n throw new Error(\"Invalid tar header checksum.\");\n const typeflag = readString(block, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE);\n const header = {\n name: readString(block, USTAR_NAME_OFFSET, USTAR_NAME_SIZE),\n mode: readOctal(block, USTAR_MODE_OFFSET, USTAR_MODE_SIZE),\n uid: readNumeric(block, USTAR_UID_OFFSET, USTAR_UID_SIZE),\n gid: readNumeric(block, USTAR_GID_OFFSET, USTAR_GID_SIZE),\n size: readNumeric(block, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE),\n mtime: /* @__PURE__ */ new Date(readNumeric(block, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE) * 1000),\n type: FLAGTYPE[typeflag] || FILE,\n linkname: readString(block, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE)\n };\n const magic = readString(block, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE);\n if (magic.trim() === \"ustar\") {\n header.uname = readString(block, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE);\n header.gname = readString(block, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE);\n }\n if (magic === \"ustar\")\n header.prefix = readString(block, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE);\n return header;\n}\nvar PAX_MAPPING = {\n path: [\"name\", (v) => v],\n linkpath: [\"linkname\", (v) => v],\n size: [\"size\", (v) => parseInt(v, 10)],\n mtime: [\"mtime\", parseFloat],\n uid: [\"uid\", (v) => parseInt(v, 10)],\n gid: [\"gid\", (v) => parseInt(v, 10)],\n uname: [\"uname\", (v) => v],\n gname: [\"gname\", (v) => v]\n};\nfunction parsePax(buffer) {\n const decoder$1 = new TextDecoder(\"utf-8\");\n const overrides = {};\n const pax = {};\n let offset = 0;\n while (offset < buffer.length) {\n const spaceIndex = buffer.indexOf(32, offset);\n if (spaceIndex === -1)\n break;\n const length = parseInt(decoder$1.decode(buffer.subarray(offset, spaceIndex)), 10);\n if (Number.isNaN(length) || length === 0)\n break;\n const recordEnd = offset + length;\n const [key, value] = decoder$1.decode(buffer.subarray(spaceIndex + 1, recordEnd - 1)).split(\"=\", 2);\n if (key && value !== undefined) {\n pax[key] = value;\n const mapping = PAX_MAPPING[key];\n if (mapping) {\n const [targetKey, parser] = mapping;\n const parsedValue = parser(value);\n if (typeof parsedValue === \"string\" || !Number.isNaN(parsedValue))\n overrides[targetKey] = parsedValue;\n }\n }\n offset = recordEnd;\n }\n if (Object.keys(pax).length > 0)\n overrides.pax = pax;\n return overrides;\n}\nfunction applyOverrides(header, overrides) {\n if (overrides.name !== undefined)\n header.name = overrides.name;\n if (overrides.linkname !== undefined)\n header.linkname = overrides.linkname;\n if (overrides.size !== undefined)\n header.size = overrides.size;\n if (overrides.mtime !== undefined)\n header.mtime = /* @__PURE__ */ new Date(overrides.mtime * 1000);\n if (overrides.uid !== undefined)\n header.uid = overrides.uid;\n if (overrides.gid !== undefined)\n header.gid = overrides.gid;\n if (overrides.uname !== undefined)\n header.uname = overrides.uname;\n if (overrides.gname !== undefined)\n header.gname = overrides.gname;\n if (overrides.pax)\n header.pax = Object.assign({}, header.pax ?? {}, overrides.pax);\n}\nfunction getMetaParser(type) {\n switch (type) {\n case \"pax-global-header\":\n case \"pax-header\":\n return parsePax;\n case \"gnu-long-name\":\n return (data) => ({ name: readString(data, 0, data.length) });\n case \"gnu-long-link-name\":\n return (data) => ({ linkname: readString(data, 0, data.length) });\n default:\n return;\n }\n}\nfunction getHeaderBlocks(header) {\n const base = createTarHeader(header);\n const pax = generatePax(header);\n if (!pax)\n return [base];\n const paxPadding = -pax.paxBody.length & BLOCK_SIZE_MASK;\n const paddingBlocks = paxPadding > 0 ? [ZERO_BLOCK.subarray(0, paxPadding)] : [];\n return [\n pax.paxHeader,\n pax.paxBody,\n ...paddingBlocks,\n base\n ];\n}\nvar EOF_BUFFER = new Uint8Array(BLOCK_SIZE * 2);\nfunction createTarPacker(onData, onError, onFinalize) {\n let currentHeader = null;\n let bytesWritten = 0;\n let finalized = false;\n return {\n add(header) {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"No new tar entries after finalize.\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Previous entry must be completed before adding a new one\");\n onError(error);\n throw error;\n }\n try {\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n const headerBlocks = getHeaderBlocks({\n ...header,\n size\n });\n for (const block of headerBlocks)\n onData(block);\n currentHeader = {\n ...header,\n size\n };\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n }\n },\n write(chunk) {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active tar entry.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot write data after finalize.\");\n onError(error);\n throw error;\n }\n const newTotal = bytesWritten + chunk.length;\n if (newTotal > currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`\"${currentHeader.name}\" exceeds given size of ${currentHeader.size} bytes.`);\n onError(error);\n throw error;\n }\n try {\n bytesWritten = newTotal;\n onData(chunk);\n } catch (error) {\n onError(error);\n }\n },\n endEntry() {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active entry to end.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot end entry after finalize.\");\n onError(error);\n throw error;\n }\n try {\n if (bytesWritten !== currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`Size mismatch for \"${currentHeader.name}\".`);\n onError(error);\n throw error;\n }\n const paddingSize = -currentHeader.size & BLOCK_SIZE_MASK;\n if (paddingSize > 0)\n onData(new Uint8Array(paddingSize));\n currentHeader = null;\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n throw error;\n }\n },\n finalize() {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Archive has already been finalized\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Cannot finalize while an entry is still active\");\n onError(error);\n throw error;\n }\n try {\n onData(EOF_BUFFER);\n finalized = true;\n if (onFinalize)\n onFinalize();\n } catch (error) {\n onError(error);\n }\n }\n };\n}\nvar INITIAL_CAPACITY = 256;\nfunction createChunkQueue() {\n let chunks = new Array(INITIAL_CAPACITY);\n let capacityMask = chunks.length - 1;\n let head = 0;\n let tail = 0;\n let totalAvailable = 0;\n const consumeFromHead = (count) => {\n const chunk = chunks[head];\n if (count === chunk.length) {\n chunks[head] = EMPTY;\n head = head + 1 & capacityMask;\n } else\n chunks[head] = chunk.subarray(count);\n totalAvailable -= count;\n if (totalAvailable === 0 && chunks.length > INITIAL_CAPACITY) {\n chunks = new Array(INITIAL_CAPACITY);\n capacityMask = INITIAL_CAPACITY - 1;\n head = 0;\n tail = 0;\n }\n };\n function pull(bytes, callback) {\n if (callback) {\n let fed = 0;\n let remaining$1 = Math.min(bytes, totalAvailable);\n while (remaining$1 > 0) {\n const chunk = chunks[head];\n const toFeed = Math.min(remaining$1, chunk.length);\n const segment = toFeed === chunk.length ? chunk : chunk.subarray(0, toFeed);\n consumeFromHead(toFeed);\n remaining$1 -= toFeed;\n fed += toFeed;\n if (!callback(segment))\n break;\n }\n return fed;\n }\n if (totalAvailable < bytes)\n return null;\n if (bytes === 0)\n return EMPTY;\n const firstChunk = chunks[head];\n if (firstChunk.length >= bytes) {\n const view = firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n consumeFromHead(bytes);\n return view;\n }\n const result = new Uint8Array(bytes);\n let copied = 0;\n let remaining = bytes;\n while (remaining > 0) {\n const chunk = chunks[head];\n const toCopy = Math.min(remaining, chunk.length);\n result.set(toCopy === chunk.length ? chunk : chunk.subarray(0, toCopy), copied);\n copied += toCopy;\n remaining -= toCopy;\n consumeFromHead(toCopy);\n }\n return result;\n }\n return {\n push: (chunk) => {\n if (chunk.length === 0)\n return;\n let nextTail = tail + 1 & capacityMask;\n if (nextTail === head) {\n const oldLen = chunks.length;\n const newLen = oldLen * 2;\n const newChunks = new Array(newLen);\n const count = tail - head + oldLen & oldLen - 1;\n if (head < tail)\n for (let i = 0;i < count; i++)\n newChunks[i] = chunks[head + i];\n else if (count > 0) {\n const firstPart = oldLen - head;\n for (let i = 0;i < firstPart; i++)\n newChunks[i] = chunks[head + i];\n for (let i = 0;i < tail; i++)\n newChunks[firstPart + i] = chunks[i];\n }\n chunks = newChunks;\n capacityMask = newLen - 1;\n head = 0;\n tail = count;\n nextTail = tail + 1 & capacityMask;\n }\n chunks[tail] = chunk;\n tail = nextTail;\n totalAvailable += chunk.length;\n },\n available: () => totalAvailable,\n peek: (bytes) => {\n if (totalAvailable < bytes)\n return null;\n if (bytes === 0)\n return EMPTY;\n const firstChunk = chunks[head];\n if (firstChunk.length >= bytes)\n return firstChunk.length === bytes ? firstChunk : firstChunk.subarray(0, bytes);\n const result = new Uint8Array(bytes);\n let copied = 0;\n let index = head;\n while (copied < bytes) {\n const chunk = chunks[index];\n const toCopy = Math.min(bytes - copied, chunk.length);\n if (toCopy === chunk.length)\n result.set(chunk, copied);\n else\n result.set(chunk.subarray(0, toCopy), copied);\n copied += toCopy;\n index = index + 1 & capacityMask;\n }\n return result;\n },\n discard: (bytes) => {\n if (bytes > totalAvailable)\n throw new Error(\"Too many bytes consumed\");\n if (bytes === 0)\n return;\n let remaining = bytes;\n while (remaining > 0) {\n const chunk = chunks[head];\n const toConsume = Math.min(remaining, chunk.length);\n consumeFromHead(toConsume);\n remaining -= toConsume;\n }\n },\n pull\n };\n}\nvar STATE_HEADER = 0;\nvar STATE_BODY = 1;\nvar truncateErr = /* @__PURE__ */ new Error(\"Tar archive is truncated.\");\nfunction createUnpacker(options = {}) {\n const strict = options.strict ?? false;\n const { available, peek, push, discard, pull } = createChunkQueue();\n let state = STATE_HEADER;\n let ended = false;\n let done = false;\n let eof = false;\n let currentEntry = null;\n const paxGlobals = {};\n let nextEntryOverrides = {};\n const unpacker = {\n isEntryActive: () => state === STATE_BODY,\n isBodyComplete: () => !currentEntry || currentEntry.remaining === 0,\n write(chunk) {\n if (ended)\n throw new Error(\"Archive already ended.\");\n push(chunk);\n },\n end() {\n ended = true;\n },\n readHeader() {\n if (state !== STATE_HEADER)\n throw new Error(\"Cannot read header while an entry is active\");\n if (done)\n return;\n while (!done) {\n if (available() < BLOCK_SIZE) {\n if (ended) {\n if (available() > 0 && strict)\n throw truncateErr;\n done = true;\n return;\n }\n return null;\n }\n const headerBlock = peek(BLOCK_SIZE);\n if (isZeroBlock(headerBlock)) {\n if (available() < BLOCK_SIZE * 2) {\n if (ended) {\n if (strict)\n throw truncateErr;\n done = true;\n return;\n }\n return null;\n }\n if (isZeroBlock(peek(BLOCK_SIZE * 2).subarray(BLOCK_SIZE))) {\n discard(BLOCK_SIZE * 2);\n done = true;\n eof = true;\n return;\n }\n if (strict)\n throw new Error(\"Invalid tar header.\");\n discard(BLOCK_SIZE);\n continue;\n }\n let internalHeader;\n try {\n internalHeader = parseUstarHeader(headerBlock, strict);\n } catch (err) {\n if (strict)\n throw err;\n discard(BLOCK_SIZE);\n continue;\n }\n const metaParser = getMetaParser(internalHeader.type);\n if (metaParser) {\n const paddedSize = internalHeader.size + BLOCK_SIZE_MASK & ~BLOCK_SIZE_MASK;\n if (available() < BLOCK_SIZE + paddedSize) {\n if (ended && strict)\n throw truncateErr;\n return null;\n }\n discard(BLOCK_SIZE);\n const overrides = metaParser(pull(paddedSize).subarray(0, internalHeader.size));\n const target = internalHeader.type === \"pax-global-header\" ? paxGlobals : nextEntryOverrides;\n for (const key in overrides)\n target[key] = overrides[key];\n continue;\n }\n discard(BLOCK_SIZE);\n const header = internalHeader;\n if (internalHeader.prefix)\n header.name = `${internalHeader.prefix}/${header.name}`;\n applyOverrides(header, paxGlobals);\n applyOverrides(header, nextEntryOverrides);\n nextEntryOverrides = {};\n currentEntry = {\n header,\n remaining: header.size,\n padding: -header.size & BLOCK_SIZE_MASK\n };\n state = STATE_BODY;\n return header;\n }\n },\n streamBody(callback) {\n if (state !== STATE_BODY || !currentEntry || currentEntry.remaining === 0)\n return 0;\n const bytesToFeed = Math.min(currentEntry.remaining, available());\n if (bytesToFeed === 0)\n return 0;\n const fed = pull(bytesToFeed, callback);\n currentEntry.remaining -= fed;\n return fed;\n },\n skipPadding() {\n if (state !== STATE_BODY || !currentEntry)\n return true;\n if (currentEntry.remaining > 0)\n throw new Error(\"Body not fully consumed\");\n if (available() < currentEntry.padding)\n return false;\n discard(currentEntry.padding);\n currentEntry = null;\n state = STATE_HEADER;\n return true;\n },\n skipEntry() {\n if (state !== STATE_BODY || !currentEntry)\n return true;\n const toDiscard = Math.min(currentEntry.remaining, available());\n if (toDiscard > 0) {\n discard(toDiscard);\n currentEntry.remaining -= toDiscard;\n }\n if (currentEntry.remaining > 0)\n return false;\n return unpacker.skipPadding();\n },\n validateEOF() {\n if (strict) {\n if (!eof)\n throw truncateErr;\n if (available() > 0) {\n if (pull(available()).some((byte) => byte !== 0))\n throw new Error(\"Invalid EOF.\");\n }\n }\n }\n };\n return unpacker;\n}\nfunction isZeroBlock(block) {\n if (block.byteOffset % 8 === 0) {\n const view = new BigUint64Array(block.buffer, block.byteOffset, block.length / 8);\n for (let i = 0;i < view.length; i++)\n if (view[i] !== 0n)\n return false;\n return true;\n }\n for (let i = 0;i < block.length; i++)\n if (block[i] !== 0)\n return false;\n return true;\n}\n\n// ../../node_modules/.bun/modern-tar@0.7.3/node_modules/modern-tar/dist/web/index.js\nfunction createTarPacker2() {\n let streamController;\n let packer;\n return {\n readable: new ReadableStream({ start(controller) {\n streamController = controller;\n packer = createTarPacker(controller.enqueue.bind(controller), controller.error.bind(controller), controller.close.bind(controller));\n } }),\n controller: {\n add(header) {\n const bodyless = isBodyless(header);\n const h = { ...header };\n if (bodyless)\n h.size = 0;\n packer.add(h);\n if (bodyless)\n packer.endEntry();\n return new WritableStream({\n write(chunk) {\n packer.write(chunk);\n },\n close() {\n if (!bodyless)\n packer.endEntry();\n },\n abort(reason) {\n streamController.error(reason);\n }\n });\n },\n finalize() {\n packer.finalize();\n },\n error(err) {\n streamController.error(err);\n }\n }\n };\n}\nasync function streamToBuffer(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let totalLength = 0;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n chunks.push(value);\n totalLength += value.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n } finally {\n reader.releaseLock();\n }\n}\nvar drain = (stream) => stream.pipeTo(new WritableStream);\nfunction createTarDecoder(options = {}) {\n const unpacker = createUnpacker(options);\n let bodyController = null;\n let pumping = false;\n const pump = (controller) => {\n if (pumping)\n return;\n pumping = true;\n try {\n while (true)\n if (unpacker.isEntryActive()) {\n if (bodyController) {\n if (unpacker.streamBody((c) => (bodyController.enqueue(c), true)) === 0 && !unpacker.isBodyComplete())\n break;\n } else if (!unpacker.skipEntry())\n break;\n if (unpacker.isBodyComplete()) {\n try {\n bodyController?.close();\n } catch {}\n bodyController = null;\n if (!unpacker.skipPadding())\n break;\n }\n } else {\n const header = unpacker.readHeader();\n if (header === null || header === undefined)\n break;\n controller.enqueue({\n header,\n body: new ReadableStream({\n start(c) {\n if (header.size === 0)\n c.close();\n else\n bodyController = c;\n },\n pull: () => pump(controller),\n cancel() {\n bodyController = null;\n pump(controller);\n }\n })\n });\n }\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n bodyController = null;\n throw error;\n } finally {\n pumping = false;\n }\n };\n return new TransformStream({\n transform(chunk, controller) {\n try {\n unpacker.write(chunk);\n pump(controller);\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n throw error;\n }\n },\n flush(controller) {\n try {\n unpacker.end();\n pump(controller);\n unpacker.validateEOF();\n if (unpacker.isEntryActive() && !unpacker.isBodyComplete())\n try {\n bodyController?.close();\n } catch {}\n } catch (error) {\n try {\n bodyController?.error(error);\n } catch {}\n throw error;\n }\n }\n }, undefined, { highWaterMark: 1 });\n}\nasync function packTar(entries) {\n const { readable, controller } = createTarPacker2();\n await (async () => {\n for (const entry of entries) {\n const entryStream = controller.add(entry.header);\n const body = \"body\" in entry ? entry.body : entry.data;\n if (!body) {\n await entryStream.close();\n continue;\n }\n if (body instanceof ReadableStream)\n await body.pipeTo(entryStream);\n else if (body instanceof Blob)\n await body.stream().pipeTo(entryStream);\n else\n try {\n const chunk = await normalizeBody(body);\n if (chunk.length > 0) {\n const writer = entryStream.getWriter();\n await writer.write(chunk);\n await writer.close();\n } else\n await entryStream.close();\n } catch {\n throw new TypeError(`Unsupported content type for entry \"${entry.header.name}\".`);\n }\n }\n })().then(() => controller.finalize()).catch((err) => controller.error(err));\n return new Uint8Array(await streamToBuffer(readable));\n}\nasync function unpackTar(archive, options = {}) {\n const sourceStream = archive instanceof ReadableStream ? archive : new ReadableStream({ start(controller) {\n controller.enqueue(archive instanceof Uint8Array ? archive : new Uint8Array(archive));\n controller.close();\n } });\n const results = [];\n const entryStream = sourceStream.pipeThrough(createTarDecoder(options));\n for await (const entry of entryStream) {\n let processedHeader;\n try {\n processedHeader = transformHeader(entry.header, options);\n } catch (error) {\n await entry.body.cancel();\n throw error;\n }\n if (processedHeader === null) {\n await drain(entry.body);\n continue;\n }\n if (isBodyless(processedHeader)) {\n await drain(entry.body);\n results.push({ header: processedHeader });\n } else\n results.push({\n header: processedHeader,\n data: await streamToBuffer(entry.body)\n });\n }\n return results;\n}\n\n// src/primitives/archive.ts\nvar gzipAsync = promisify(gzip);\n\nclass RXAImpl {\n _buffer;\n constructor(buffer) {\n this._buffer = buffer;\n }\n get stream() {\n const buffer = this._buffer;\n return new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(buffer));\n controller.close();\n }\n });\n }\n async buffer() {\n return this._buffer;\n }\n}\nasync function archive(files) {\n const entries = Object.entries(files).map(([name, content]) => {\n return {\n header: { name, size: content.length, type: \"file\" },\n body: new Uint8Array(content)\n };\n });\n const tarBuffer = await packTar(entries);\n const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));\n return new RXAImpl(gzipBuffer);\n}\n// src/primitives/locate.ts\nfunction locate(rxm) {\n return {\n domain: rxm.domain,\n path: rxm.path,\n name: rxm.name,\n type: rxm.type,\n version: rxm.version\n };\n}\n// src/primitives/resource.ts\nfunction resource(rxm, rxa) {\n const rxl = locate(rxm);\n return {\n locator: rxl,\n manifest: rxm,\n archive: rxa\n };\n}\n// src/primitives/extract.ts\nimport { gunzip } from \"node:zlib\";\nimport { promisify as promisify2 } from \"node:util\";\nvar gunzipAsync = promisify2(gunzip);\nasync function extract(rxa) {\n const buffer = await rxa.buffer();\n const tarBuffer = await gunzipAsync(buffer);\n const entries = await unpackTar(tarBuffer);\n const files = {};\n for (const entry of entries) {\n if ((entry.header.type === \"file\" || entry.header.type === undefined) && entry.data) {\n files[entry.header.name] = Buffer.from(entry.data);\n }\n }\n return files;\n}\n// src/primitives/format.ts\nfunction format(rxl) {\n let result = rxl.domain + \"/\";\n if (rxl.path) {\n result += rxl.path + \"/\";\n }\n result += rxl.name;\n result += \".\" + rxl.type;\n result += \"@\" + rxl.version;\n return result;\n}\n// src/primitives/parse.ts\nfunction parse(locator) {\n if (!locator || typeof locator !== \"string\") {\n throw new LocatorError(\"locator must be a non-empty string\", locator);\n }\n const atIndex = locator.lastIndexOf(\"@\");\n if (atIndex === -1) {\n throw new LocatorError(\"locator must contain version (@)\", locator);\n }\n const version = locator.slice(atIndex + 1);\n const beforeVersion = locator.slice(0, atIndex);\n if (!version) {\n throw new LocatorError(\"version is required\", locator);\n }\n const dotIndex = beforeVersion.lastIndexOf(\".\");\n if (dotIndex === -1) {\n throw new LocatorError(\"locator must contain type (.)\", locator);\n }\n const type = beforeVersion.slice(dotIndex + 1);\n const beforeType = beforeVersion.slice(0, dotIndex);\n if (!type) {\n throw new LocatorError(\"type is required\", locator);\n }\n const parts = beforeType.split(\"/\");\n if (parts.length < 2) {\n throw new LocatorError(\"locator must contain domain\", locator);\n }\n const domain = parts[0];\n const name = parts[parts.length - 1];\n const path = parts.length > 2 ? parts.slice(1, -1).join(\"/\") : undefined;\n if (!domain) {\n throw new LocatorError(\"domain is required\", locator);\n }\n if (!name) {\n throw new LocatorError(\"name is required\", locator);\n }\n return {\n domain,\n path,\n name,\n type,\n version\n };\n}\n// src/primitives/wrap.ts\nclass RXAImpl2 {\n _buffer;\n constructor(buffer) {\n this._buffer = buffer;\n }\n get stream() {\n const buffer = this._buffer;\n return new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(buffer));\n controller.close();\n }\n });\n }\n async buffer() {\n return this._buffer;\n }\n}\nfunction wrap(buffer) {\n return new RXAImpl2(buffer);\n}\nexport {\n wrap,\n resource,\n parse,\n manifest,\n locate,\n format,\n extract,\n define,\n archive,\n ResourceXError,\n ManifestError,\n LocatorError,\n DefinitionError,\n ContentError\n};\n\n//# debugId=467D5F5D80C42E4F64756E2164756E21\n",
|
|
11
6
|
"import { ResourceXError } from \"@resourcexjs/core\";\n\n/**\n * Registry-specific error.\n */\nexport class RegistryError extends ResourceXError {\n constructor(message: string, options?: ErrorOptions) {\n super(message, options);\n this.name = \"RegistryError\";\n }\n}\n",
|
|
12
|
-
"import type { RXR } from \"@resourcexjs/core\";\nimport
|
|
13
|
-
"import type {
|
|
14
|
-
"import
|
|
7
|
+
"import type { RXL, RXR, RXM } from \"@resourcexjs/core\";\nimport { format, resource, wrap, parse } from \"@resourcexjs/core\";\nimport type { Storage } from \"@resourcexjs/storage\";\nimport type { Registry, SearchOptions } from \"./Registry.js\";\nimport { RegistryError } from \"../errors.js\";\n\n/**\n * HostedRegistry - Registry for resources you own (authoritative data).\n *\n * Uses Storage layer for persistence.\n * Storage structure:\n * {domain}/{path}/{name}.{type}/{version}/\n * - manifest.json\n * - archive.tar.gz\n */\nexport class HostedRegistry implements Registry {\n constructor(private readonly storage: Storage) {}\n\n /**\n * Build storage key prefix for a resource.\n */\n private buildKeyPrefix(rxl: RXL): string {\n const domain = rxl.domain ?? \"localhost\";\n const resourceName = rxl.type ? `${rxl.name}.${rxl.type}` : rxl.name;\n const version = rxl.version ?? \"latest\";\n\n let key = domain;\n if (rxl.path) {\n key += `/${rxl.path}`;\n }\n key += `/${resourceName}/${version}`;\n\n return key;\n }\n\n async get(rxl: RXL): Promise<RXR> {\n const prefix = this.buildKeyPrefix(rxl);\n const manifestKey = `${prefix}/manifest.json`;\n const archiveKey = `${prefix}/archive.tar.gz`;\n\n // Read manifest\n let manifestData: Buffer;\n try {\n manifestData = await this.storage.get(manifestKey);\n } catch {\n throw new RegistryError(`Resource not found: ${format(rxl)}`);\n }\n\n const manifestJson = JSON.parse(manifestData.toString(\"utf-8\"));\n const rxm: RXM = {\n domain: manifestJson.domain,\n path: manifestJson.path,\n name: manifestJson.name,\n type: manifestJson.type,\n version: manifestJson.version,\n files: manifestJson.files,\n };\n\n // Read archive\n const archiveData = await this.storage.get(archiveKey);\n const rxa = wrap(archiveData);\n\n return resource(rxm, rxa);\n }\n\n async put(rxr: RXR): Promise<void> {\n const prefix = this.buildKeyPrefix(rxr.locator);\n const manifestKey = `${prefix}/manifest.json`;\n const archiveKey = `${prefix}/archive.tar.gz`;\n\n // Write manifest\n const manifestJson = {\n domain: rxr.manifest.domain,\n path: rxr.manifest.path,\n name: rxr.manifest.name,\n type: rxr.manifest.type,\n version: rxr.manifest.version,\n files: rxr.manifest.files,\n };\n const manifestData = Buffer.from(JSON.stringify(manifestJson, null, 2), \"utf-8\");\n await this.storage.put(manifestKey, manifestData);\n\n // Write archive\n const archiveData = await rxr.archive.buffer();\n await this.storage.put(archiveKey, archiveData);\n }\n\n async has(rxl: RXL): Promise<boolean> {\n const prefix = this.buildKeyPrefix(rxl);\n const manifestKey = `${prefix}/manifest.json`;\n return this.storage.exists(manifestKey);\n }\n\n async remove(rxl: RXL): Promise<void> {\n const prefix = this.buildKeyPrefix(rxl);\n // Delete entire version directory\n await this.storage.delete(prefix);\n }\n\n async list(options?: SearchOptions): Promise<RXL[]> {\n const { query, limit, offset = 0 } = options ?? {};\n\n // List all keys and find manifest.json files\n const allKeys = await this.storage.list();\n const locators: RXL[] = [];\n\n for (const key of allKeys) {\n if (!key.endsWith(\"manifest.json\")) continue;\n\n const rxl = this.parseKeyToRXL(key);\n if (rxl) {\n locators.push(rxl);\n }\n }\n\n // Filter by query\n let filtered = locators;\n if (query) {\n const lowerQuery = query.toLowerCase();\n filtered = locators.filter((rxl) => {\n const searchText =\n `${rxl.domain ?? \"\"} ${rxl.path ?? \"\"} ${rxl.name} ${rxl.type ?? \"\"}`.toLowerCase();\n return searchText.includes(lowerQuery);\n });\n }\n\n // Apply pagination\n let result = filtered.slice(offset);\n if (limit !== undefined) {\n result = result.slice(0, limit);\n }\n\n return result;\n }\n\n /**\n * Parse storage key to RXL.\n * Key format: {domain}/{path}/{name}.{type}/{version}/manifest.json\n */\n private parseKeyToRXL(key: string): RXL | null {\n // Remove /manifest.json suffix\n const dirPath = key.replace(/\\/manifest\\.json$/, \"\");\n const parts = dirPath.split(\"/\");\n\n if (parts.length < 3) {\n // Need at least: domain, name.type, version\n return null;\n }\n\n // Last part is version\n const version = parts.pop()!;\n // Second to last is {name}.{type}\n const nameTypePart = parts.pop()!;\n // First part is domain\n const domain = parts.shift()!;\n // Remaining parts are path (if any)\n const path = parts.length > 0 ? parts.join(\"/\") : undefined;\n\n // Split name and type\n const dotIndex = nameTypePart.lastIndexOf(\".\");\n let name: string;\n let type: string | undefined;\n\n if (dotIndex !== -1) {\n name = nameTypePart.substring(0, dotIndex);\n type = nameTypePart.substring(dotIndex + 1);\n } else {\n name = nameTypePart;\n type = undefined;\n }\n\n // Construct locator string and parse\n let locatorStr = domain;\n if (path) locatorStr += `/${path}`;\n locatorStr += `/${name}`;\n if (type) locatorStr += `.${type}`;\n locatorStr += `@${version}`;\n\n try {\n return parse(locatorStr);\n } catch {\n return null;\n }\n }\n}\n",
|
|
8
|
+
"import type { RXL, RXR, RXM } from \"@resourcexjs/core\";\nimport { format, resource, wrap, parse } from \"@resourcexjs/core\";\nimport type { Storage } from \"@resourcexjs/storage\";\nimport type { Registry, SearchOptions } from \"./Registry.js\";\nimport { RegistryError } from \"../errors.js\";\n\n/**\n * MirrorRegistry - Registry for cached/mirrored remote resources.\n *\n * Similar to HostedRegistry but adds cache management methods.\n * Resources can be cleared (evicted from cache).\n *\n * Storage structure:\n * {domain}/{path}/{name}.{type}/{version}/\n * - manifest.json\n * - archive.tar.gz\n */\nexport class MirrorRegistry implements Registry {\n constructor(private readonly storage: Storage) {}\n\n /**\n * Build storage key prefix for a resource.\n */\n private buildKeyPrefix(rxl: RXL): string {\n const domain = rxl.domain ?? \"localhost\";\n const resourceName = rxl.type ? `${rxl.name}.${rxl.type}` : rxl.name;\n const version = rxl.version ?? \"latest\";\n\n let key = domain;\n if (rxl.path) {\n key += `/${rxl.path}`;\n }\n key += `/${resourceName}/${version}`;\n\n return key;\n }\n\n async get(rxl: RXL): Promise<RXR> {\n const prefix = this.buildKeyPrefix(rxl);\n const manifestKey = `${prefix}/manifest.json`;\n const archiveKey = `${prefix}/archive.tar.gz`;\n\n // Read manifest\n let manifestData: Buffer;\n try {\n manifestData = await this.storage.get(manifestKey);\n } catch {\n throw new RegistryError(`Resource not found in cache: ${format(rxl)}`);\n }\n\n const manifestJson = JSON.parse(manifestData.toString(\"utf-8\"));\n const rxm: RXM = {\n domain: manifestJson.domain,\n path: manifestJson.path,\n name: manifestJson.name,\n type: manifestJson.type,\n version: manifestJson.version,\n files: manifestJson.files,\n };\n\n // Read archive\n const archiveData = await this.storage.get(archiveKey);\n const rxa = wrap(archiveData);\n\n return resource(rxm, rxa);\n }\n\n async put(rxr: RXR): Promise<void> {\n const prefix = this.buildKeyPrefix(rxr.locator);\n const manifestKey = `${prefix}/manifest.json`;\n const archiveKey = `${prefix}/archive.tar.gz`;\n\n // Write manifest\n const manifestJson = {\n domain: rxr.manifest.domain,\n path: rxr.manifest.path,\n name: rxr.manifest.name,\n type: rxr.manifest.type,\n version: rxr.manifest.version,\n files: rxr.manifest.files,\n };\n const manifestData = Buffer.from(JSON.stringify(manifestJson, null, 2), \"utf-8\");\n await this.storage.put(manifestKey, manifestData);\n\n // Write archive\n const archiveData = await rxr.archive.buffer();\n await this.storage.put(archiveKey, archiveData);\n }\n\n async has(rxl: RXL): Promise<boolean> {\n const prefix = this.buildKeyPrefix(rxl);\n const manifestKey = `${prefix}/manifest.json`;\n return this.storage.exists(manifestKey);\n }\n\n async remove(rxl: RXL): Promise<void> {\n const prefix = this.buildKeyPrefix(rxl);\n await this.storage.delete(prefix);\n }\n\n async list(options?: SearchOptions): Promise<RXL[]> {\n const { query, limit, offset = 0 } = options ?? {};\n\n // List all keys and find manifest.json files\n const allKeys = await this.storage.list();\n const locators: RXL[] = [];\n\n for (const key of allKeys) {\n if (!key.endsWith(\"manifest.json\")) continue;\n\n const rxl = this.parseKeyToRXL(key);\n if (rxl) {\n locators.push(rxl);\n }\n }\n\n // Filter by query\n let filtered = locators;\n if (query) {\n const lowerQuery = query.toLowerCase();\n filtered = locators.filter((rxl) => {\n const searchText =\n `${rxl.domain ?? \"\"} ${rxl.path ?? \"\"} ${rxl.name} ${rxl.type ?? \"\"}`.toLowerCase();\n return searchText.includes(lowerQuery);\n });\n }\n\n // Apply pagination\n let result = filtered.slice(offset);\n if (limit !== undefined) {\n result = result.slice(0, limit);\n }\n\n return result;\n }\n\n // ===== Cache-specific methods =====\n\n /**\n * Clear cached resources.\n * @param domain - If provided, only clear resources from this domain\n */\n async clear(domain?: string): Promise<void> {\n if (domain) {\n // Clear specific domain\n await this.storage.delete(domain);\n } else {\n // Clear all - list and delete each domain directory\n const allKeys = await this.storage.list();\n const domains = new Set<string>();\n\n for (const key of allKeys) {\n const firstSlash = key.indexOf(\"/\");\n if (firstSlash !== -1) {\n domains.add(key.substring(0, firstSlash));\n } else {\n domains.add(key);\n }\n }\n\n for (const d of domains) {\n await this.storage.delete(d);\n }\n }\n }\n\n /**\n * Parse storage key to RXL.\n * Key format: {domain}/{path}/{name}.{type}/{version}/manifest.json\n */\n private parseKeyToRXL(key: string): RXL | null {\n // Remove /manifest.json suffix\n const dirPath = key.replace(/\\/manifest\\.json$/, \"\");\n const parts = dirPath.split(\"/\");\n\n if (parts.length < 3) {\n return null;\n }\n\n const version = parts.pop()!;\n const nameTypePart = parts.pop()!;\n const domain = parts.shift()!;\n const path = parts.length > 0 ? parts.join(\"/\") : undefined;\n\n const dotIndex = nameTypePart.lastIndexOf(\".\");\n let name: string;\n let type: string | undefined;\n\n if (dotIndex !== -1) {\n name = nameTypePart.substring(0, dotIndex);\n type = nameTypePart.substring(dotIndex + 1);\n } else {\n name = nameTypePart;\n type = undefined;\n }\n\n let locatorStr = domain;\n if (path) locatorStr += `/${path}`;\n locatorStr += `/${name}`;\n if (type) locatorStr += `.${type}`;\n locatorStr += `@${version}`;\n\n try {\n return parse(locatorStr);\n } catch {\n return null;\n }\n }\n}\n",
|
|
9
|
+
"import { join, resolve as resolvePath } from \"node:path\";\nimport { symlink, lstat, readlink, rm, mkdir, readdir } from \"node:fs/promises\";\nimport type { RXL, RXR } from \"@resourcexjs/core\";\nimport { format, parse } from \"@resourcexjs/core\";\nimport { loadResource } from \"@resourcexjs/loader\";\nimport type { Registry, SearchOptions } from \"./Registry.js\";\nimport { RegistryError } from \"../errors.js\";\n\n/**\n * LinkedRegistry - Registry for development symlinks.\n *\n * Creates symlinks to development directories so changes are reflected immediately.\n * Unlike HostedRegistry/MirrorRegistry, it doesn't use Storage layer directly.\n * Instead, it manages symlinks in a base directory.\n *\n * Storage structure:\n * {basePath}/{domain}/{path}/{name}.{type}/{version} → /path/to/dev/folder\n */\nexport class LinkedRegistry implements Registry {\n constructor(private readonly basePath: string) {}\n\n /**\n * Build symlink path for a resource.\n */\n private buildLinkPath(rxl: RXL): string {\n const domain = rxl.domain ?? \"localhost\";\n const resourceName = rxl.type ? `${rxl.name}.${rxl.type}` : rxl.name;\n const version = rxl.version ?? \"latest\";\n\n let linkPath = join(this.basePath, domain);\n if (rxl.path) {\n linkPath = join(linkPath, rxl.path);\n }\n return join(linkPath, resourceName, version);\n }\n\n /**\n * Check if a path is a symlink.\n */\n private async isSymlink(path: string): Promise<boolean> {\n try {\n const stats = await lstat(path);\n return stats.isSymbolicLink();\n } catch {\n return false;\n }\n }\n\n async get(rxl: RXL): Promise<RXR> {\n const linkPath = this.buildLinkPath(rxl);\n\n if (!(await this.isSymlink(linkPath))) {\n throw new RegistryError(`Linked resource not found: ${format(rxl)}`);\n }\n\n // Read symlink target and load resource from there\n const targetPath = await readlink(linkPath);\n return loadResource(targetPath);\n }\n\n /**\n * Put is not typically used for LinkedRegistry.\n * Use link() instead to create symlinks.\n */\n async put(_rxr: RXR): Promise<void> {\n throw new RegistryError(\"LinkedRegistry does not support put(). Use link() instead.\");\n }\n\n async has(rxl: RXL): Promise<boolean> {\n const linkPath = this.buildLinkPath(rxl);\n return this.isSymlink(linkPath);\n }\n\n async remove(rxl: RXL): Promise<void> {\n const linkPath = this.buildLinkPath(rxl);\n\n if (await this.isSymlink(linkPath)) {\n await rm(linkPath);\n }\n }\n\n async list(options?: SearchOptions): Promise<RXL[]> {\n const { query, limit, offset = 0 } = options ?? {};\n const locators: RXL[] = [];\n\n // Recursively scan for symlinks\n try {\n await this.scanSymlinks(this.basePath, \"\", locators);\n } catch {\n // Base directory doesn't exist\n return [];\n }\n\n // Filter by query\n let filtered = locators;\n if (query) {\n const lowerQuery = query.toLowerCase();\n filtered = locators.filter((rxl) => {\n const searchText =\n `${rxl.domain ?? \"\"} ${rxl.path ?? \"\"} ${rxl.name} ${rxl.type ?? \"\"}`.toLowerCase();\n return searchText.includes(lowerQuery);\n });\n }\n\n // Apply pagination\n let result = filtered.slice(offset);\n if (limit !== undefined) {\n result = result.slice(0, limit);\n }\n\n return result;\n }\n\n // ===== Link-specific methods =====\n\n /**\n * Link a development directory.\n * Creates a symlink so changes are reflected immediately.\n *\n * @param devPath - Path to development directory (must contain resource.json)\n * @returns The RXL of the linked resource\n */\n async link(devPath: string): Promise<RXL> {\n // Load resource to get locator info\n const rxr = await loadResource(devPath);\n const linkPath = this.buildLinkPath(rxr.locator);\n\n // Remove existing if any\n try {\n const stats = await lstat(linkPath);\n if (stats.isSymbolicLink() || stats.isDirectory()) {\n await rm(linkPath, { recursive: true });\n }\n } catch {\n // Doesn't exist, that's fine\n }\n\n // Ensure parent directory exists\n const parentPath = join(linkPath, \"..\");\n await mkdir(parentPath, { recursive: true });\n\n // Create symlink to absolute path\n const absolutePath = resolvePath(devPath);\n await symlink(absolutePath, linkPath);\n\n return rxr.locator;\n }\n\n /**\n * Unlink a development directory.\n * Alias for remove().\n */\n async unlink(rxl: RXL): Promise<void> {\n return this.remove(rxl);\n }\n\n /**\n * Recursively scan for symlinks.\n */\n private async scanSymlinks(\n dirPath: string,\n relativePath: string,\n locators: RXL[]\n ): Promise<void> {\n let entries;\n try {\n entries = await readdir(dirPath);\n } catch {\n return;\n }\n\n for (const entry of entries) {\n const fullPath = join(dirPath, entry);\n const relPath = relativePath ? `${relativePath}/${entry}` : entry;\n\n try {\n const stats = await lstat(fullPath);\n\n if (stats.isSymbolicLink()) {\n // This is a linked resource, parse the path to get RXL\n const rxl = this.parsePathToRXL(relPath);\n if (rxl) {\n locators.push(rxl);\n }\n } else if (stats.isDirectory()) {\n // Recurse into directory\n await this.scanSymlinks(fullPath, relPath, locators);\n }\n } catch {\n // Skip entries we can't access\n }\n }\n }\n\n /**\n * Parse relative path to RXL.\n * Path format: {domain}/{path}/{name}.{type}/{version}\n */\n private parsePathToRXL(relPath: string): RXL | null {\n const parts = relPath.split(\"/\");\n\n if (parts.length < 3) {\n // Need at least: domain, name.type, version\n return null;\n }\n\n // Last part is version\n const version = parts.pop()!;\n // Second to last is {name}.{type}\n const nameTypePart = parts.pop()!;\n // First part is domain\n const domain = parts.shift()!;\n // Remaining parts are path (if any)\n const path = parts.length > 0 ? parts.join(\"/\") : undefined;\n\n // Split name and type\n const dotIndex = nameTypePart.lastIndexOf(\".\");\n let name: string;\n let type: string | undefined;\n\n if (dotIndex !== -1) {\n name = nameTypePart.substring(0, dotIndex);\n type = nameTypePart.substring(dotIndex + 1);\n } else {\n name = nameTypePart;\n type = undefined;\n }\n\n // Construct locator string and parse\n let locatorStr = domain;\n if (path) locatorStr += `/${path}`;\n locatorStr += `/${name}`;\n if (type) locatorStr += `.${type}`;\n locatorStr += `@${version}`;\n\n try {\n return parse(locatorStr);\n } catch {\n return null;\n }\n }\n}\n",
|
|
10
|
+
"// src/FolderLoader.ts\nimport { join, relative } from \"node:path\";\nimport { stat, readFile, readdir } from \"node:fs/promises\";\n\n// ../core/dist/index.js\nimport { gzip } from \"node:zlib\";\nimport { promisify } from \"node:util\";\nimport { gunzip } from \"node:zlib\";\nimport { promisify as promisify2 } from \"node:util\";\n\nclass ResourceXError extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"ResourceXError\";\n }\n}\nclass DefinitionError extends ResourceXError {\n constructor(message) {\n super(message);\n this.name = \"DefinitionError\";\n }\n}\nfunction define(input) {\n if (input === null || typeof input !== \"object\") {\n throw new DefinitionError(\"definition must be an object\");\n }\n const obj = input;\n if (!obj.name || typeof obj.name !== \"string\") {\n throw new DefinitionError(\"name is required\");\n }\n if (!obj.type || typeof obj.type !== \"string\") {\n throw new DefinitionError(\"type is required\");\n }\n if (!obj.version || typeof obj.version !== \"string\") {\n throw new DefinitionError(\"version is required\");\n }\n const rxd = {\n ...obj,\n name: obj.name,\n type: obj.type,\n version: obj.version,\n domain: typeof obj.domain === \"string\" ? obj.domain : \"localhost\",\n path: typeof obj.path === \"string\" ? obj.path : undefined,\n description: typeof obj.description === \"string\" ? obj.description : undefined,\n author: typeof obj.author === \"string\" ? obj.author : undefined,\n license: typeof obj.license === \"string\" ? obj.license : undefined,\n keywords: Array.isArray(obj.keywords) ? obj.keywords : undefined,\n repository: typeof obj.repository === \"string\" ? obj.repository : undefined\n };\n return rxd;\n}\nfunction manifest(rxd) {\n return {\n domain: rxd.domain,\n path: rxd.path,\n name: rxd.name,\n type: rxd.type,\n version: rxd.version\n };\n}\nvar BLOCK_SIZE = 512;\nvar BLOCK_SIZE_MASK = 511;\nvar DEFAULT_FILE_MODE = 420;\nvar DEFAULT_DIR_MODE = 493;\nvar USTAR_NAME_OFFSET = 0;\nvar USTAR_NAME_SIZE = 100;\nvar USTAR_MODE_OFFSET = 100;\nvar USTAR_MODE_SIZE = 8;\nvar USTAR_UID_OFFSET = 108;\nvar USTAR_UID_SIZE = 8;\nvar USTAR_GID_OFFSET = 116;\nvar USTAR_GID_SIZE = 8;\nvar USTAR_SIZE_OFFSET = 124;\nvar USTAR_SIZE_SIZE = 12;\nvar USTAR_MTIME_OFFSET = 136;\nvar USTAR_MTIME_SIZE = 12;\nvar USTAR_CHECKSUM_OFFSET = 148;\nvar USTAR_CHECKSUM_SIZE = 8;\nvar USTAR_TYPEFLAG_OFFSET = 156;\nvar USTAR_TYPEFLAG_SIZE = 1;\nvar USTAR_LINKNAME_OFFSET = 157;\nvar USTAR_LINKNAME_SIZE = 100;\nvar USTAR_MAGIC_OFFSET = 257;\nvar USTAR_MAGIC_SIZE = 6;\nvar USTAR_VERSION_OFFSET = 263;\nvar USTAR_VERSION_SIZE = 2;\nvar USTAR_UNAME_OFFSET = 265;\nvar USTAR_UNAME_SIZE = 32;\nvar USTAR_GNAME_OFFSET = 297;\nvar USTAR_GNAME_SIZE = 32;\nvar USTAR_PREFIX_OFFSET = 345;\nvar USTAR_PREFIX_SIZE = 155;\nvar USTAR_VERSION = \"00\";\nvar USTAR_MAX_UID_GID = 2097151;\nvar USTAR_MAX_SIZE = 8589934591;\nvar FILE = \"file\";\nvar LINK = \"link\";\nvar SYMLINK = \"symlink\";\nvar DIRECTORY = \"directory\";\nvar TYPEFLAG = {\n file: \"0\",\n link: \"1\",\n symlink: \"2\",\n \"character-device\": \"3\",\n \"block-device\": \"4\",\n directory: \"5\",\n fifo: \"6\",\n \"pax-header\": \"x\",\n \"pax-global-header\": \"g\",\n \"gnu-long-name\": \"L\",\n \"gnu-long-link-name\": \"K\"\n};\nvar ZERO_BLOCK = new Uint8Array(BLOCK_SIZE);\nvar EMPTY = new Uint8Array(0);\nvar encoder = new TextEncoder;\nvar decoder = new TextDecoder;\nfunction writeString(view, offset, size, value) {\n if (value)\n encoder.encodeInto(value, view.subarray(offset, offset + size));\n}\nfunction writeOctal(view, offset, size, value) {\n if (value === undefined)\n return;\n const octalString = value.toString(8).padStart(size - 1, \"0\");\n encoder.encodeInto(octalString, view.subarray(offset, offset + size - 1));\n}\nvar isBodyless = (header) => header.type === DIRECTORY || header.type === SYMLINK || header.type === LINK;\nasync function normalizeBody(body) {\n if (body === null || body === undefined)\n return EMPTY;\n if (body instanceof Uint8Array)\n return body;\n if (typeof body === \"string\")\n return encoder.encode(body);\n if (body instanceof ArrayBuffer)\n return new Uint8Array(body);\n if (body instanceof Blob)\n return new Uint8Array(await body.arrayBuffer());\n throw new TypeError(\"Unsupported content type for entry body.\");\n}\nvar CHECKSUM_SPACE = 32;\nvar ASCII_ZERO = 48;\nfunction writeChecksum(block) {\n block.fill(CHECKSUM_SPACE, USTAR_CHECKSUM_OFFSET, USTAR_CHECKSUM_OFFSET + USTAR_CHECKSUM_SIZE);\n let checksum = 0;\n for (const byte of block)\n checksum += byte;\n for (let i = USTAR_CHECKSUM_OFFSET + 6 - 1;i >= USTAR_CHECKSUM_OFFSET; i--) {\n block[i] = (checksum & 7) + ASCII_ZERO;\n checksum >>= 3;\n }\n block[USTAR_CHECKSUM_OFFSET + 6] = 0;\n block[USTAR_CHECKSUM_OFFSET + 7] = CHECKSUM_SPACE;\n}\nfunction generatePax(header) {\n const paxRecords = {};\n if (header.name.length > USTAR_NAME_SIZE) {\n if (findUstarSplit(header.name) === null)\n paxRecords.path = header.name;\n }\n if (header.linkname && header.linkname.length > USTAR_NAME_SIZE)\n paxRecords.linkpath = header.linkname;\n if (header.uname && header.uname.length > USTAR_UNAME_SIZE)\n paxRecords.uname = header.uname;\n if (header.gname && header.gname.length > USTAR_GNAME_SIZE)\n paxRecords.gname = header.gname;\n if (header.uid != null && header.uid > USTAR_MAX_UID_GID)\n paxRecords.uid = String(header.uid);\n if (header.gid != null && header.gid > USTAR_MAX_UID_GID)\n paxRecords.gid = String(header.gid);\n if (header.size != null && header.size > USTAR_MAX_SIZE)\n paxRecords.size = String(header.size);\n if (header.pax)\n Object.assign(paxRecords, header.pax);\n const paxEntries = Object.entries(paxRecords);\n if (paxEntries.length === 0)\n return null;\n const paxBody = encoder.encode(paxEntries.map(([key, value]) => {\n const record = `${key}=${value}\n`;\n const partLength = encoder.encode(record).length + 1;\n let totalLength = partLength + String(partLength).length;\n totalLength = partLength + String(totalLength).length;\n return `${totalLength} ${record}`;\n }).join(\"\"));\n return {\n paxHeader: createTarHeader({\n name: decoder.decode(encoder.encode(`PaxHeader/${header.name}`).slice(0, 100)),\n size: paxBody.length,\n type: \"pax-header\",\n mode: 420,\n mtime: header.mtime,\n uname: header.uname,\n gname: header.gname,\n uid: header.uid,\n gid: header.gid\n }),\n paxBody\n };\n}\nfunction findUstarSplit(path) {\n if (path.length <= USTAR_NAME_SIZE)\n return null;\n const minSlashIndex = path.length - USTAR_NAME_SIZE - 1;\n const slashIndex = path.lastIndexOf(\"/\", USTAR_PREFIX_SIZE);\n if (slashIndex > 0 && slashIndex >= minSlashIndex)\n return {\n prefix: path.slice(0, slashIndex),\n name: path.slice(slashIndex + 1)\n };\n return null;\n}\nfunction createTarHeader(header) {\n const view = new Uint8Array(BLOCK_SIZE);\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n let name = header.name;\n let prefix = \"\";\n if (!header.pax?.path) {\n const split = findUstarSplit(name);\n if (split) {\n name = split.name;\n prefix = split.prefix;\n }\n }\n writeString(view, USTAR_NAME_OFFSET, USTAR_NAME_SIZE, name);\n writeOctal(view, USTAR_MODE_OFFSET, USTAR_MODE_SIZE, header.mode ?? (header.type === DIRECTORY ? DEFAULT_DIR_MODE : DEFAULT_FILE_MODE));\n writeOctal(view, USTAR_UID_OFFSET, USTAR_UID_SIZE, header.uid ?? 0);\n writeOctal(view, USTAR_GID_OFFSET, USTAR_GID_SIZE, header.gid ?? 0);\n writeOctal(view, USTAR_SIZE_OFFSET, USTAR_SIZE_SIZE, size);\n writeOctal(view, USTAR_MTIME_OFFSET, USTAR_MTIME_SIZE, Math.floor((header.mtime?.getTime() ?? Date.now()) / 1000));\n writeString(view, USTAR_TYPEFLAG_OFFSET, USTAR_TYPEFLAG_SIZE, TYPEFLAG[header.type ?? FILE]);\n writeString(view, USTAR_LINKNAME_OFFSET, USTAR_LINKNAME_SIZE, header.linkname);\n writeString(view, USTAR_MAGIC_OFFSET, USTAR_MAGIC_SIZE, \"ustar\\x00\");\n writeString(view, USTAR_VERSION_OFFSET, USTAR_VERSION_SIZE, USTAR_VERSION);\n writeString(view, USTAR_UNAME_OFFSET, USTAR_UNAME_SIZE, header.uname);\n writeString(view, USTAR_GNAME_OFFSET, USTAR_GNAME_SIZE, header.gname);\n writeString(view, USTAR_PREFIX_OFFSET, USTAR_PREFIX_SIZE, prefix);\n writeChecksum(view);\n return view;\n}\nfunction getHeaderBlocks(header) {\n const base = createTarHeader(header);\n const pax = generatePax(header);\n if (!pax)\n return [base];\n const paxPadding = -pax.paxBody.length & BLOCK_SIZE_MASK;\n const paddingBlocks = paxPadding > 0 ? [ZERO_BLOCK.subarray(0, paxPadding)] : [];\n return [\n pax.paxHeader,\n pax.paxBody,\n ...paddingBlocks,\n base\n ];\n}\nvar EOF_BUFFER = new Uint8Array(BLOCK_SIZE * 2);\nfunction createTarPacker(onData, onError, onFinalize) {\n let currentHeader = null;\n let bytesWritten = 0;\n let finalized = false;\n return {\n add(header) {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"No new tar entries after finalize.\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Previous entry must be completed before adding a new one\");\n onError(error);\n throw error;\n }\n try {\n const size = isBodyless(header) ? 0 : header.size ?? 0;\n const headerBlocks = getHeaderBlocks({\n ...header,\n size\n });\n for (const block of headerBlocks)\n onData(block);\n currentHeader = {\n ...header,\n size\n };\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n }\n },\n write(chunk) {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active tar entry.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot write data after finalize.\");\n onError(error);\n throw error;\n }\n const newTotal = bytesWritten + chunk.length;\n if (newTotal > currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`\"${currentHeader.name}\" exceeds given size of ${currentHeader.size} bytes.`);\n onError(error);\n throw error;\n }\n try {\n bytesWritten = newTotal;\n onData(chunk);\n } catch (error) {\n onError(error);\n }\n },\n endEntry() {\n if (!currentHeader) {\n const error = /* @__PURE__ */ new Error(\"No active entry to end.\");\n onError(error);\n throw error;\n }\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Cannot end entry after finalize.\");\n onError(error);\n throw error;\n }\n try {\n if (bytesWritten !== currentHeader.size) {\n const error = /* @__PURE__ */ new Error(`Size mismatch for \"${currentHeader.name}\".`);\n onError(error);\n throw error;\n }\n const paddingSize = -currentHeader.size & BLOCK_SIZE_MASK;\n if (paddingSize > 0)\n onData(new Uint8Array(paddingSize));\n currentHeader = null;\n bytesWritten = 0;\n } catch (error) {\n onError(error);\n throw error;\n }\n },\n finalize() {\n if (finalized) {\n const error = /* @__PURE__ */ new Error(\"Archive has already been finalized\");\n onError(error);\n throw error;\n }\n if (currentHeader !== null) {\n const error = /* @__PURE__ */ new Error(\"Cannot finalize while an entry is still active\");\n onError(error);\n throw error;\n }\n try {\n onData(EOF_BUFFER);\n finalized = true;\n if (onFinalize)\n onFinalize();\n } catch (error) {\n onError(error);\n }\n }\n };\n}\nfunction createTarPacker2() {\n let streamController;\n let packer;\n return {\n readable: new ReadableStream({ start(controller) {\n streamController = controller;\n packer = createTarPacker(controller.enqueue.bind(controller), controller.error.bind(controller), controller.close.bind(controller));\n } }),\n controller: {\n add(header) {\n const bodyless = isBodyless(header);\n const h = { ...header };\n if (bodyless)\n h.size = 0;\n packer.add(h);\n if (bodyless)\n packer.endEntry();\n return new WritableStream({\n write(chunk) {\n packer.write(chunk);\n },\n close() {\n if (!bodyless)\n packer.endEntry();\n },\n abort(reason) {\n streamController.error(reason);\n }\n });\n },\n finalize() {\n packer.finalize();\n },\n error(err) {\n streamController.error(err);\n }\n }\n };\n}\nasync function streamToBuffer(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let totalLength = 0;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n chunks.push(value);\n totalLength += value.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n } finally {\n reader.releaseLock();\n }\n}\nasync function packTar(entries) {\n const { readable, controller } = createTarPacker2();\n await (async () => {\n for (const entry of entries) {\n const entryStream = controller.add(entry.header);\n const body = \"body\" in entry ? entry.body : entry.data;\n if (!body) {\n await entryStream.close();\n continue;\n }\n if (body instanceof ReadableStream)\n await body.pipeTo(entryStream);\n else if (body instanceof Blob)\n await body.stream().pipeTo(entryStream);\n else\n try {\n const chunk = await normalizeBody(body);\n if (chunk.length > 0) {\n const writer = entryStream.getWriter();\n await writer.write(chunk);\n await writer.close();\n } else\n await entryStream.close();\n } catch {\n throw new TypeError(`Unsupported content type for entry \"${entry.header.name}\".`);\n }\n }\n })().then(() => controller.finalize()).catch((err) => controller.error(err));\n return new Uint8Array(await streamToBuffer(readable));\n}\nvar gzipAsync = promisify(gzip);\n\nclass RXAImpl {\n _buffer;\n constructor(buffer) {\n this._buffer = buffer;\n }\n get stream() {\n const buffer = this._buffer;\n return new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(buffer));\n controller.close();\n }\n });\n }\n async buffer() {\n return this._buffer;\n }\n}\nasync function archive(files) {\n const entries = Object.entries(files).map(([name, content]) => {\n return {\n header: { name, size: content.length, type: \"file\" },\n body: new Uint8Array(content)\n };\n });\n const tarBuffer = await packTar(entries);\n const gzipBuffer = await gzipAsync(Buffer.from(tarBuffer));\n return new RXAImpl(gzipBuffer);\n}\nfunction locate(rxm) {\n return {\n domain: rxm.domain,\n path: rxm.path,\n name: rxm.name,\n type: rxm.type,\n version: rxm.version\n };\n}\nfunction resource(rxm, rxa) {\n const rxl = locate(rxm);\n return {\n locator: rxl,\n manifest: rxm,\n archive: rxa\n };\n}\nvar gunzipAsync = promisify2(gunzip);\n\n// src/FolderLoader.ts\nclass FolderLoader {\n async canLoad(source) {\n try {\n const stats = await stat(source);\n if (!stats.isDirectory()) {\n return false;\n }\n const manifestPath = join(source, \"resource.json\");\n const manifestStats = await stat(manifestPath);\n return manifestStats.isFile();\n } catch {\n return false;\n }\n }\n async load(folderPath) {\n const resourceJsonPath = join(folderPath, \"resource.json\");\n let resourceJson;\n try {\n resourceJson = await readFile(resourceJsonPath, \"utf-8\");\n } catch (error) {\n throw new ResourceXError(`Failed to read resource.json: ${error instanceof Error ? error.message : String(error)}`);\n }\n let json;\n try {\n json = JSON.parse(resourceJson);\n } catch (error) {\n throw new ResourceXError(`Invalid JSON in resource.json: ${error instanceof Error ? error.message : String(error)}`);\n }\n const rxd = define(json);\n const files = await this.readFolderFiles(folderPath);\n if (Object.keys(files).length === 0) {\n throw new ResourceXError(\"No content files found in resource folder\");\n }\n const rxm = manifest(rxd);\n const rxa = await archive(files);\n return resource(rxm, rxa);\n }\n async readFolderFiles(folderPath, basePath = folderPath) {\n const files = {};\n const entries = await readdir(folderPath, { withFileTypes: true });\n for (const entry of entries) {\n const fullPath = join(folderPath, entry.name);\n const relativePath = relative(basePath, fullPath);\n if (relativePath === \"resource.json\") {\n continue;\n }\n if (entry.isFile()) {\n files[relativePath] = await readFile(fullPath);\n } else if (entry.isDirectory()) {\n const subFiles = await this.readFolderFiles(fullPath, basePath);\n Object.assign(files, subFiles);\n }\n }\n return files;\n }\n}\n// src/loadResource.ts\nasync function loadResource(source, config) {\n const loader = config?.loader ?? new FolderLoader;\n const canLoad = await loader.canLoad(source);\n if (!canLoad) {\n throw new ResourceXError(`Cannot load resource from: ${source}`);\n }\n return loader.load(source);\n}\nexport {\n loadResource,\n FolderLoader\n};\n\n//# debugId=D8B130133E9A8B0F64756E2164756E21\n",
|
|
15
11
|
"/**\n * Well-known discovery for ResourceX registries.\n */\n\nimport { RegistryError } from \"./errors.js\";\n\n/**\n * Well-known discovery response format.\n */\nexport interface WellKnownResponse {\n version?: string;\n registries: string[];\n}\n\n/**\n * Result from discoverRegistry().\n */\nexport interface DiscoveryResult {\n domain: string;\n registries: string[];\n}\n\n/**\n * Discover registry for a domain using well-known.\n * @param domain - The domain to discover (e.g., \"deepractice.ai\")\n * @returns Discovery result with domain and authorized registries\n */\nexport async function discoverRegistry(domain: string): Promise<DiscoveryResult> {\n const wellKnownUrl = `https://${domain}/.well-known/resourcex`;\n\n try {\n const response = await fetch(wellKnownUrl);\n if (!response.ok) {\n throw new RegistryError(`Well-known discovery failed for ${domain}: ${response.statusText}`);\n }\n\n const data = (await response.json()) as WellKnownResponse;\n\n if (!data.registries || !Array.isArray(data.registries) || data.registries.length === 0) {\n throw new RegistryError(\n `Invalid well-known response for ${domain}: missing or empty registries`\n );\n }\n\n return {\n domain,\n registries: data.registries,\n };\n } catch (error) {\n if (error instanceof RegistryError) {\n throw error;\n }\n throw new RegistryError(\n `Failed to discover registry for ${domain}: ${(error as Error).message}`\n );\n }\n}\n",
|
|
16
|
-
"/**\n * Registry Middleware Base Class\n *\n * Provides a base for creating middleware that wraps Registry implementations.\n * All methods delegate to the inner registry by default.\n * Subclasses can override specific methods to add behavior.\n */\n\nimport type { RXR, RXL } from \"@resourcexjs/core\";\nimport type {
|
|
17
|
-
"/**\n * Domain Validation Middleware\n *\n * Validates that resources returned from the registry match the trusted domain.\n * Prevents untrusted registries from impersonating other domains.\n */\n\nimport type { RXR } from \"@resourcexjs/core\";\nimport type {
|
|
12
|
+
"/**\n * Registry Middleware Base Class\n *\n * Provides a base for creating middleware that wraps Registry implementations.\n * All methods delegate to the inner registry by default.\n * Subclasses can override specific methods to add behavior.\n */\n\nimport type { RXR, RXL } from \"@resourcexjs/core\";\nimport type { Registry, SearchOptions } from \"../registries/index.js\";\n\n/**\n * Base class for Registry middleware.\n * Delegates all operations to the inner registry.\n * Override specific methods to add custom behavior.\n */\nexport abstract class RegistryMiddleware implements Registry {\n constructor(protected readonly inner: Registry) {}\n\n get(rxl: RXL): Promise<RXR> {\n return this.inner.get(rxl);\n }\n\n put(rxr: RXR): Promise<void> {\n return this.inner.put(rxr);\n }\n\n has(rxl: RXL): Promise<boolean> {\n return this.inner.has(rxl);\n }\n\n remove(rxl: RXL): Promise<void> {\n return this.inner.remove(rxl);\n }\n\n list(options?: SearchOptions): Promise<RXL[]> {\n return this.inner.list(options);\n }\n}\n",
|
|
13
|
+
"/**\n * Domain Validation Middleware\n *\n * Validates that resources returned from the registry match the trusted domain.\n * Prevents untrusted registries from impersonating other domains.\n */\n\nimport type { RXR, RXL } from \"@resourcexjs/core\";\nimport type { Registry } from \"../registries/index.js\";\nimport { RegistryMiddleware } from \"./RegistryMiddleware.js\";\nimport { RegistryError } from \"../errors.js\";\n\n/**\n * Domain validation middleware.\n * Ensures all resources from this registry match the trusted domain.\n */\nexport class DomainValidation extends RegistryMiddleware {\n constructor(\n inner: Registry,\n private readonly trustedDomain: string\n ) {\n super(inner);\n }\n\n /**\n * Validate that manifest domain matches trusted domain.\n */\n private validateDomain(rxr: RXR): void {\n if (rxr.manifest.domain !== this.trustedDomain) {\n throw new RegistryError(\n `Untrusted domain: resource claims \"${rxr.manifest.domain}\" but registry only trusts \"${this.trustedDomain}\"`\n );\n }\n }\n\n /**\n * Get resource and validate domain.\n */\n override async get(rxl: RXL): Promise<RXR> {\n const rxr = await this.inner.get(rxl);\n this.validateDomain(rxr);\n return rxr;\n }\n}\n\n/**\n * Factory function to create domain validation middleware.\n *\n * @example\n * const registry = withDomainValidation(hostedRegistry, \"deepractice.ai\");\n */\nexport function withDomainValidation(registry: Registry, trustedDomain: string): Registry {\n return new DomainValidation(registry, trustedDomain);\n}\n"
|
|
18
14
|
],
|
|
19
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA,sBAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAS;AACT,qBAAS,kCAA8B;AACvC;AACA,0BAAS;AACT,uBAAS;AACT,sBAAS;AACT,sBAAS;AACT;AACA;AACA,sBAAS;AACT,sBAAS;AACT,iBAAS;AACT;AACA;AACA,iBAAS;AACT;AACA,uBAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAS;AACT;AACA;AACA,yBAAS;AACT;AACA;AACA;AACA;AACA,mBAAS;AACT,mBAAS;AACT,0BAAS;AACT;AACA;AACA,iBAAS;AACT;AACA;AACA;AACA,iBAAS,aAAe;AACxB,iBAAS,aAAe;AACxB,yBAAS;AACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACA,mBAAS;AACT,qBAAS,uBAAuB,qBAAuB;AACvD,eAAS,aAAW;AACpB,wBAAS,8CAAkC;AAC3C,qBAAS;AACT,qBAAS;AACT,6BAAS;AACT,qBAAS;AACT;AACA;AACA,eAAS;AACT,oCAAS;AACT,qBAAS;AACT,iBAAS;AACT,qBAAS;AACT,wBAAS;AACT,qBAAS;AACT,qBAAS;AACT,wBAAS;AACT,mBAAS;AACT,wBAAS;AACT;AACA;AACA;AACA;AACA;AACA,oBAAS;AACT,oBAAS;AACT;AACA,gBAAS;AACT;AACA;AACA,sBAAS;AACT;AACA;AACA,kBAAS,qBAAiB;AAC1B;AACA,wBAAgB;AAChB;AACA,oBAAS;AACT;AACA;AACA,iBAAS,mBAAgB;AACzB,0BAAS;AACT;AACA;AACA,oBAAS;AACT,kBAAS,qBAAiB;AAC1B;AACA;AACA,kBAAS;AACT,yBAAS;AACT,0BAAS;AACT,0BAAS;AACT,qBAAS,yBAAuB,wBAAyB,mBAAS,eAAiB,gBAAW,iBAAQ;AACtG,oBAAS,sBAAqB;AAC9B,oBAAS;AACT,iBAAS;AACT,qBAAS,yBAAwB,wBAA0B,qBAAqB,2BAA2B,iBAAkB,aAAM;AACnI,iBAAS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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA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",
|
|
20
|
-
"debugId": "
|
|
15
|
+
"mappings": "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",
|
|
16
|
+
"debugId": "AA55A49BFF3626F564756E2164756E21",
|
|
21
17
|
"names": []
|
|
22
18
|
}
|