UNPKG

bebop-tools

Version:

Bebop compiler for Node projects.

1,263 lines (1,252 loc) 318 kB
#!/usr/bin/env node "use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // node_modules/wasi-js/dist/bindings/node.js var require_node = __commonJS({ "node_modules/wasi-js/dist/bindings/node.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); var crypto_1 = require("crypto"); var fs_1 = __importDefault(require("fs")); var tty_1 = require("tty"); var path_1 = __importDefault(require("path")); var bindings = { hrtime: process.hrtime.bigint, exit: (code) => { process.exit(code); }, kill: (signal) => { process.kill(process.pid, signal); }, randomFillSync: crypto_1.randomFillSync, isTTY: tty_1.isatty, fs: fs_1.default, path: path_1.default }; exports2.default = bindings; } }); // node_modules/wasi-js/dist/types.js var require_types = __commonJS({ "node_modules/wasi-js/dist/types.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.WASIKillError = exports2.WASIExitError = exports2.WASIError = void 0; var WASIError = class _WASIError extends Error { constructor(errno) { super(); this.errno = errno; Object.setPrototypeOf(this, _WASIError.prototype); } }; exports2.WASIError = WASIError; var WASIExitError2 = class _WASIExitError extends Error { constructor(code) { super(`WASI Exit error: ${code}`); this.code = code; Object.setPrototypeOf(this, _WASIExitError.prototype); } }; exports2.WASIExitError = WASIExitError2; var WASIKillError2 = class _WASIKillError extends Error { constructor(signal) { super(`WASI Kill signal: ${signal}`); this.signal = signal; Object.setPrototypeOf(this, _WASIKillError.prototype); } }; exports2.WASIKillError = WASIKillError2; } }); // node_modules/ms/index.js var require_ms = __commonJS({ "node_modules/ms/index.js"(exports2, module2) { var s = 1e3; var m = s * 60; var h = m * 60; var d = h * 24; var w = d * 7; var y = d * 365.25; module2.exports = function(val, options) { options = options || {}; var type = typeof val; if (type === "string" && val.length > 0) { return parse(val); } else if (type === "number" && isFinite(val)) { return options.long ? fmtLong(val) : fmtShort(val); } throw new Error( "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) ); }; function parse(str) { str = String(str); if (str.length > 100) { return; } var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( str ); if (!match) { return; } var n = parseFloat(match[1]); var type = (match[2] || "ms").toLowerCase(); switch (type) { case "years": case "year": case "yrs": case "yr": case "y": return n * y; case "weeks": case "week": case "w": return n * w; case "days": case "day": case "d": return n * d; case "hours": case "hour": case "hrs": case "hr": case "h": return n * h; case "minutes": case "minute": case "mins": case "min": case "m": return n * m; case "seconds": case "second": case "secs": case "sec": case "s": return n * s; case "milliseconds": case "millisecond": case "msecs": case "msec": case "ms": return n; default: return void 0; } } function fmtShort(ms) { var msAbs = Math.abs(ms); if (msAbs >= d) { return Math.round(ms / d) + "d"; } if (msAbs >= h) { return Math.round(ms / h) + "h"; } if (msAbs >= m) { return Math.round(ms / m) + "m"; } if (msAbs >= s) { return Math.round(ms / s) + "s"; } return ms + "ms"; } function fmtLong(ms) { var msAbs = Math.abs(ms); if (msAbs >= d) { return plural(ms, msAbs, d, "day"); } if (msAbs >= h) { return plural(ms, msAbs, h, "hour"); } if (msAbs >= m) { return plural(ms, msAbs, m, "minute"); } if (msAbs >= s) { return plural(ms, msAbs, s, "second"); } return ms + " ms"; } function plural(ms, msAbs, n, name) { var isPlural = msAbs >= n * 1.5; return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); } } }); // node_modules/debug/src/common.js var require_common = __commonJS({ "node_modules/debug/src/common.js"(exports2, module2) { function setup(env) { createDebug.debug = createDebug; createDebug.default = createDebug; createDebug.coerce = coerce; createDebug.disable = disable; createDebug.enable = enable; createDebug.enabled = enabled; createDebug.humanize = require_ms(); createDebug.destroy = destroy; Object.keys(env).forEach((key) => { createDebug[key] = env[key]; }); createDebug.names = []; createDebug.skips = []; createDebug.formatters = {}; function selectColor(namespace) { let hash = 0; for (let i = 0; i < namespace.length; i++) { hash = (hash << 5) - hash + namespace.charCodeAt(i); hash |= 0; } return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; } createDebug.selectColor = selectColor; function createDebug(namespace) { let prevTime; let enableOverride = null; let namespacesCache; let enabledCache; function debug(...args2) { if (!debug.enabled) { return; } const self = debug; const curr = Number(/* @__PURE__ */ new Date()); const ms = curr - (prevTime || curr); self.diff = ms; self.prev = prevTime; self.curr = curr; prevTime = curr; args2[0] = createDebug.coerce(args2[0]); if (typeof args2[0] !== "string") { args2.unshift("%O"); } let index = 0; args2[0] = args2[0].replace(/%([a-zA-Z%])/g, (match, format) => { if (match === "%%") { return "%"; } index++; const formatter = createDebug.formatters[format]; if (typeof formatter === "function") { const val = args2[index]; match = formatter.call(self, val); args2.splice(index, 1); index--; } return match; }); createDebug.formatArgs.call(self, args2); const logFn = self.log || createDebug.log; logFn.apply(self, args2); } debug.namespace = namespace; debug.useColors = createDebug.useColors(); debug.color = createDebug.selectColor(namespace); debug.extend = extend; debug.destroy = createDebug.destroy; Object.defineProperty(debug, "enabled", { enumerable: true, configurable: false, get: () => { if (enableOverride !== null) { return enableOverride; } if (namespacesCache !== createDebug.namespaces) { namespacesCache = createDebug.namespaces; enabledCache = createDebug.enabled(namespace); } return enabledCache; }, set: (v) => { enableOverride = v; } }); if (typeof createDebug.init === "function") { createDebug.init(debug); } return debug; } function extend(namespace, delimiter) { const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); newDebug.log = this.log; return newDebug; } function enable(namespaces) { createDebug.save(namespaces); createDebug.namespaces = namespaces; createDebug.names = []; createDebug.skips = []; let i; const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); const len = split.length; for (i = 0; i < len; i++) { if (!split[i]) { continue; } namespaces = split[i].replace(/\*/g, ".*?"); if (namespaces[0] === "-") { createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); } else { createDebug.names.push(new RegExp("^" + namespaces + "$")); } } } function disable() { const namespaces = [ ...createDebug.names.map(toNamespace), ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) ].join(","); createDebug.enable(""); return namespaces; } function enabled(name) { if (name[name.length - 1] === "*") { return true; } let i; let len; for (i = 0, len = createDebug.skips.length; i < len; i++) { if (createDebug.skips[i].test(name)) { return false; } } for (i = 0, len = createDebug.names.length; i < len; i++) { if (createDebug.names[i].test(name)) { return true; } } return false; } function toNamespace(regexp) { return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); } function coerce(val) { if (val instanceof Error) { return val.stack || val.message; } return val; } function destroy() { console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); } createDebug.enable(createDebug.load()); return createDebug; } module2.exports = setup; } }); // node_modules/debug/src/browser.js var require_browser = __commonJS({ "node_modules/debug/src/browser.js"(exports2, module2) { exports2.formatArgs = formatArgs; exports2.save = save; exports2.load = load; exports2.useColors = useColors; exports2.storage = localstorage(); exports2.destroy = /* @__PURE__ */ (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); } }; })(); exports2.colors = [ "#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33" ]; function useColors() { if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { return true; } if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { return false; } return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); } function formatArgs(args2) { args2[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args2[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); if (!this.useColors) { return; } const c = "color: " + this.color; args2.splice(1, 0, c, "color: inherit"); let index = 0; let lastC = 0; args2[0].replace(/%[a-zA-Z%]/g, (match) => { if (match === "%%") { return; } index++; if (match === "%c") { lastC = index; } }); args2.splice(lastC, 0, c); } exports2.log = console.debug || console.log || (() => { }); function save(namespaces) { try { if (namespaces) { exports2.storage.setItem("debug", namespaces); } else { exports2.storage.removeItem("debug"); } } catch (error) { } } function load() { let r; try { r = exports2.storage.getItem("debug"); } catch (error) { } if (!r && typeof process !== "undefined" && "env" in process) { r = process.env.DEBUG; } return r; } function localstorage() { try { return localStorage; } catch (error) { } } module2.exports = require_common()(exports2); var { formatters } = module2.exports; formatters.j = function(v) { try { return JSON.stringify(v); } catch (error) { return "[UnexpectedJSONParseError]: " + error.message; } }; } }); // node_modules/debug/src/node.js var require_node2 = __commonJS({ "node_modules/debug/src/node.js"(exports2, module2) { var tty = require("tty"); var util = require("util"); exports2.init = init; exports2.log = log; exports2.formatArgs = formatArgs; exports2.save = save; exports2.load = load; exports2.useColors = useColors; exports2.destroy = util.deprecate( () => { }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." ); exports2.colors = [6, 2, 3, 4, 5, 1]; try { const supportsColor = require("supports-color"); if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { exports2.colors = [ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221 ]; } } catch (error) { } exports2.inspectOpts = Object.keys(process.env).filter((key) => { return /^debug_/i.test(key); }).reduce((obj, key) => { const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { return k.toUpperCase(); }); let val = process.env[key]; if (/^(yes|on|true|enabled)$/i.test(val)) { val = true; } else if (/^(no|off|false|disabled)$/i.test(val)) { val = false; } else if (val === "null") { val = null; } else { val = Number(val); } obj[prop] = val; return obj; }, {}); function useColors() { return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd); } function formatArgs(args2) { const { namespace: name, useColors: useColors2 } = this; if (useColors2) { const c = this.color; const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); const prefix = ` ${colorCode};1m${name} \x1B[0m`; args2[0] = prefix + args2[0].split("\n").join("\n" + prefix); args2.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m"); } else { args2[0] = getDate() + name + " " + args2[0]; } } function getDate() { if (exports2.inspectOpts.hideDate) { return ""; } return (/* @__PURE__ */ new Date()).toISOString() + " "; } function log(...args2) { return process.stderr.write(util.format(...args2) + "\n"); } function save(namespaces) { if (namespaces) { process.env.DEBUG = namespaces; } else { delete process.env.DEBUG; } } function load() { return process.env.DEBUG; } function init(debug) { debug.inspectOpts = {}; const keys = Object.keys(exports2.inspectOpts); for (let i = 0; i < keys.length; i++) { debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]]; } } module2.exports = require_common()(exports2); var { formatters } = module2.exports; formatters.o = function(v) { this.inspectOpts.colors = this.useColors; return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); }; formatters.O = function(v) { this.inspectOpts.colors = this.useColors; return util.inspect(v, this.inspectOpts); }; } }); // node_modules/debug/src/index.js var require_src = __commonJS({ "node_modules/debug/src/index.js"(exports2, module2) { if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { module2.exports = require_browser(); } else { module2.exports = require_node2(); } } }); // node_modules/typedarray-to-buffer/index.js var require_typedarray_to_buffer = __commonJS({ "node_modules/typedarray-to-buffer/index.js"(exports2, module2) { module2.exports = function typedarrayToBuffer(arr) { return ArrayBuffer.isView(arr) ? Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength) : Buffer.from(arr); }; } }); // node_modules/wasi-js/dist/constants.js var require_constants = __commonJS({ "node_modules/wasi-js/dist/constants.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.WASI_ENOMSG = exports2.WASI_ENOMEM = exports2.WASI_ENOLINK = exports2.WASI_ENOLCK = exports2.WASI_ENOEXEC = exports2.WASI_ENOENT = exports2.WASI_ENODEV = exports2.WASI_ENOBUFS = exports2.WASI_ENFILE = exports2.WASI_ENETUNREACH = exports2.WASI_ENETRESET = exports2.WASI_ENETDOWN = exports2.WASI_ENAMETOOLONG = exports2.WASI_EMULTIHOP = exports2.WASI_EMSGSIZE = exports2.WASI_EMLINK = exports2.WASI_EMFILE = exports2.WASI_ELOOP = exports2.WASI_EISDIR = exports2.WASI_EISCONN = exports2.WASI_EIO = exports2.WASI_EINVAL = exports2.WASI_EINTR = exports2.WASI_EINPROGRESS = exports2.WASI_EILSEQ = exports2.WASI_EIDRM = exports2.WASI_EHOSTUNREACH = exports2.WASI_EFBIG = exports2.WASI_EFAULT = exports2.WASI_EEXIST = exports2.WASI_EDQUOT = exports2.WASI_EDOM = exports2.WASI_EDESTADDRREQ = exports2.WASI_EDEADLK = exports2.WASI_ECONNRESET = exports2.WASI_ECONNREFUSED = exports2.WASI_ECONNABORTED = exports2.WASI_ECHILD = exports2.WASI_ECANCELED = exports2.WASI_EBUSY = exports2.WASI_EBADMSG = exports2.WASI_EBADF = exports2.WASI_EALREADY = exports2.WASI_EAGAIN = exports2.WASI_EAFNOSUPPORT = exports2.WASI_EADDRNOTAVAIL = exports2.WASI_EADDRINUSE = exports2.WASI_EACCES = exports2.WASI_E2BIG = exports2.WASI_ESUCCESS = void 0; exports2.WASI_SIGVTALRM = exports2.WASI_SIGUSR2 = exports2.WASI_SIGUSR1 = exports2.WASI_SIGURG = exports2.WASI_SIGTTOU = exports2.WASI_SIGTTIN = exports2.WASI_SIGTSTP = exports2.WASI_SIGTRAP = exports2.WASI_SIGTERM = exports2.WASI_SIGSTOP = exports2.WASI_SIGSEGV = exports2.WASI_SIGQUIT = exports2.WASI_SIGPIPE = exports2.WASI_SIGKILL = exports2.WASI_SIGINT = exports2.WASI_SIGILL = exports2.WASI_SIGHUP = exports2.WASI_SIGFPE = exports2.WASI_SIGCONT = exports2.WASI_SIGCHLD = exports2.WASI_SIGBUS = exports2.WASI_SIGALRM = exports2.WASI_SIGABRT = exports2.WASI_ENOTCAPABLE = exports2.WASI_EXDEV = exports2.WASI_ETXTBSY = exports2.WASI_ETIMEDOUT = exports2.WASI_ESTALE = exports2.WASI_ESRCH = exports2.WASI_ESPIPE = exports2.WASI_EROFS = exports2.WASI_ERANGE = exports2.WASI_EPROTOTYPE = exports2.WASI_EPROTONOSUPPORT = exports2.WASI_EPROTO = exports2.WASI_EPIPE = exports2.WASI_EPERM = exports2.WASI_EOWNERDEAD = exports2.WASI_EOVERFLOW = exports2.WASI_ENXIO = exports2.WASI_ENOTTY = exports2.WASI_ENOTSUP = exports2.WASI_ENOTSOCK = exports2.WASI_ENOTRECOVERABLE = exports2.WASI_ENOTEMPTY = exports2.WASI_ENOTDIR = exports2.WASI_ENOTCONN = exports2.WASI_ENOSYS = exports2.WASI_ENOSPC = exports2.WASI_ENOPROTOOPT = void 0; exports2.RIGHTS_REGULAR_FILE_BASE = exports2.RIGHTS_CHARACTER_DEVICE_INHERITING = exports2.RIGHTS_CHARACTER_DEVICE_BASE = exports2.RIGHTS_BLOCK_DEVICE_INHERITING = exports2.RIGHTS_BLOCK_DEVICE_BASE = exports2.RIGHTS_ALL = exports2.WASI_RIGHT_SOCK_SHUTDOWN = exports2.WASI_RIGHT_POLL_FD_READWRITE = exports2.WASI_RIGHT_PATH_UNLINK_FILE = exports2.WASI_RIGHT_PATH_REMOVE_DIRECTORY = exports2.WASI_RIGHT_PATH_SYMLINK = exports2.WASI_RIGHT_FD_FILESTAT_SET_TIMES = exports2.WASI_RIGHT_FD_FILESTAT_SET_SIZE = exports2.WASI_RIGHT_FD_FILESTAT_GET = exports2.WASI_RIGHT_PATH_FILESTAT_SET_TIMES = exports2.WASI_RIGHT_PATH_FILESTAT_SET_SIZE = exports2.WASI_RIGHT_PATH_FILESTAT_GET = exports2.WASI_RIGHT_PATH_RENAME_TARGET = exports2.WASI_RIGHT_PATH_RENAME_SOURCE = exports2.WASI_RIGHT_PATH_READLINK = exports2.WASI_RIGHT_FD_READDIR = exports2.WASI_RIGHT_PATH_OPEN = exports2.WASI_RIGHT_PATH_LINK_TARGET = exports2.WASI_RIGHT_PATH_LINK_SOURCE = exports2.WASI_RIGHT_PATH_CREATE_FILE = exports2.WASI_RIGHT_PATH_CREATE_DIRECTORY = exports2.WASI_RIGHT_FD_ALLOCATE = exports2.WASI_RIGHT_FD_ADVISE = exports2.WASI_RIGHT_FD_WRITE = exports2.WASI_RIGHT_FD_TELL = exports2.WASI_RIGHT_FD_SYNC = exports2.WASI_RIGHT_FD_FDSTAT_SET_FLAGS = exports2.WASI_RIGHT_FD_SEEK = exports2.WASI_RIGHT_FD_READ = exports2.WASI_RIGHT_FD_DATASYNC = exports2.WASI_FDFLAG_SYNC = exports2.WASI_FDFLAG_RSYNC = exports2.WASI_FDFLAG_NONBLOCK = exports2.WASI_FDFLAG_DSYNC = exports2.WASI_FDFLAG_APPEND = exports2.WASI_FILETYPE_SYMBOLIC_LINK = exports2.WASI_FILETYPE_SOCKET_STREAM = exports2.WASI_FILETYPE_SOCKET_DGRAM = exports2.WASI_FILETYPE_REGULAR_FILE = exports2.WASI_FILETYPE_DIRECTORY = exports2.WASI_FILETYPE_CHARACTER_DEVICE = exports2.WASI_FILETYPE_BLOCK_DEVICE = exports2.WASI_FILETYPE_UNKNOWN = exports2.WASI_SIGXFSZ = exports2.WASI_SIGXCPU = void 0; exports2.SIGNAL_MAP = exports2.ERROR_MAP = exports2.WASI_WHENCE_END = exports2.WASI_WHENCE_CUR = exports2.WASI_WHENCE_SET = exports2.WASI_STDERR_FILENO = exports2.WASI_STDOUT_FILENO = exports2.WASI_STDIN_FILENO = exports2.WASI_DIRCOOKIE_START = exports2.WASI_PREOPENTYPE_DIR = exports2.WASI_O_TRUNC = exports2.WASI_O_EXCL = exports2.WASI_O_DIRECTORY = exports2.WASI_O_CREAT = exports2.WASI_FILESTAT_SET_MTIM_NOW = exports2.WASI_FILESTAT_SET_MTIM = exports2.WASI_FILESTAT_SET_ATIM_NOW = exports2.WASI_FILESTAT_SET_ATIM = exports2.WASI_EVENTTYPE_FD_WRITE = exports2.WASI_EVENTTYPE_FD_READ = exports2.WASI_EVENTTYPE_CLOCK = exports2.WASI_CLOCK_THREAD_CPUTIME_ID = exports2.WASI_CLOCK_PROCESS_CPUTIME_ID = exports2.WASI_CLOCK_MONOTONIC = exports2.WASI_CLOCK_REALTIME = exports2.RIGHTS_TTY_INHERITING = exports2.RIGHTS_TTY_BASE = exports2.RIGHTS_SOCKET_INHERITING = exports2.RIGHTS_SOCKET_BASE = exports2.RIGHTS_DIRECTORY_INHERITING = exports2.RIGHTS_DIRECTORY_BASE = exports2.RIGHTS_REGULAR_FILE_INHERITING = void 0; exports2.WASI_ESUCCESS = 0; exports2.WASI_E2BIG = 1; exports2.WASI_EACCES = 2; exports2.WASI_EADDRINUSE = 3; exports2.WASI_EADDRNOTAVAIL = 4; exports2.WASI_EAFNOSUPPORT = 5; exports2.WASI_EAGAIN = 6; exports2.WASI_EALREADY = 7; exports2.WASI_EBADF = 8; exports2.WASI_EBADMSG = 9; exports2.WASI_EBUSY = 10; exports2.WASI_ECANCELED = 11; exports2.WASI_ECHILD = 12; exports2.WASI_ECONNABORTED = 13; exports2.WASI_ECONNREFUSED = 14; exports2.WASI_ECONNRESET = 15; exports2.WASI_EDEADLK = 16; exports2.WASI_EDESTADDRREQ = 17; exports2.WASI_EDOM = 18; exports2.WASI_EDQUOT = 19; exports2.WASI_EEXIST = 20; exports2.WASI_EFAULT = 21; exports2.WASI_EFBIG = 22; exports2.WASI_EHOSTUNREACH = 23; exports2.WASI_EIDRM = 24; exports2.WASI_EILSEQ = 25; exports2.WASI_EINPROGRESS = 26; exports2.WASI_EINTR = 27; exports2.WASI_EINVAL = 28; exports2.WASI_EIO = 29; exports2.WASI_EISCONN = 30; exports2.WASI_EISDIR = 31; exports2.WASI_ELOOP = 32; exports2.WASI_EMFILE = 33; exports2.WASI_EMLINK = 34; exports2.WASI_EMSGSIZE = 35; exports2.WASI_EMULTIHOP = 36; exports2.WASI_ENAMETOOLONG = 37; exports2.WASI_ENETDOWN = 38; exports2.WASI_ENETRESET = 39; exports2.WASI_ENETUNREACH = 40; exports2.WASI_ENFILE = 41; exports2.WASI_ENOBUFS = 42; exports2.WASI_ENODEV = 43; exports2.WASI_ENOENT = 44; exports2.WASI_ENOEXEC = 45; exports2.WASI_ENOLCK = 46; exports2.WASI_ENOLINK = 47; exports2.WASI_ENOMEM = 48; exports2.WASI_ENOMSG = 49; exports2.WASI_ENOPROTOOPT = 50; exports2.WASI_ENOSPC = 51; exports2.WASI_ENOSYS = 52; exports2.WASI_ENOTCONN = 53; exports2.WASI_ENOTDIR = 54; exports2.WASI_ENOTEMPTY = 55; exports2.WASI_ENOTRECOVERABLE = 56; exports2.WASI_ENOTSOCK = 57; exports2.WASI_ENOTSUP = 58; exports2.WASI_ENOTTY = 59; exports2.WASI_ENXIO = 60; exports2.WASI_EOVERFLOW = 61; exports2.WASI_EOWNERDEAD = 62; exports2.WASI_EPERM = 63; exports2.WASI_EPIPE = 64; exports2.WASI_EPROTO = 65; exports2.WASI_EPROTONOSUPPORT = 66; exports2.WASI_EPROTOTYPE = 67; exports2.WASI_ERANGE = 68; exports2.WASI_EROFS = 69; exports2.WASI_ESPIPE = 70; exports2.WASI_ESRCH = 71; exports2.WASI_ESTALE = 72; exports2.WASI_ETIMEDOUT = 73; exports2.WASI_ETXTBSY = 74; exports2.WASI_EXDEV = 75; exports2.WASI_ENOTCAPABLE = 76; exports2.WASI_SIGABRT = 0; exports2.WASI_SIGALRM = 1; exports2.WASI_SIGBUS = 2; exports2.WASI_SIGCHLD = 3; exports2.WASI_SIGCONT = 4; exports2.WASI_SIGFPE = 5; exports2.WASI_SIGHUP = 6; exports2.WASI_SIGILL = 7; exports2.WASI_SIGINT = 8; exports2.WASI_SIGKILL = 9; exports2.WASI_SIGPIPE = 10; exports2.WASI_SIGQUIT = 11; exports2.WASI_SIGSEGV = 12; exports2.WASI_SIGSTOP = 13; exports2.WASI_SIGTERM = 14; exports2.WASI_SIGTRAP = 15; exports2.WASI_SIGTSTP = 16; exports2.WASI_SIGTTIN = 17; exports2.WASI_SIGTTOU = 18; exports2.WASI_SIGURG = 19; exports2.WASI_SIGUSR1 = 20; exports2.WASI_SIGUSR2 = 21; exports2.WASI_SIGVTALRM = 22; exports2.WASI_SIGXCPU = 23; exports2.WASI_SIGXFSZ = 24; exports2.WASI_FILETYPE_UNKNOWN = 0; exports2.WASI_FILETYPE_BLOCK_DEVICE = 1; exports2.WASI_FILETYPE_CHARACTER_DEVICE = 2; exports2.WASI_FILETYPE_DIRECTORY = 3; exports2.WASI_FILETYPE_REGULAR_FILE = 4; exports2.WASI_FILETYPE_SOCKET_DGRAM = 5; exports2.WASI_FILETYPE_SOCKET_STREAM = 6; exports2.WASI_FILETYPE_SYMBOLIC_LINK = 7; exports2.WASI_FDFLAG_APPEND = 1; exports2.WASI_FDFLAG_DSYNC = 2; exports2.WASI_FDFLAG_NONBLOCK = 4; exports2.WASI_FDFLAG_RSYNC = 8; exports2.WASI_FDFLAG_SYNC = 16; exports2.WASI_RIGHT_FD_DATASYNC = BigInt(1); exports2.WASI_RIGHT_FD_READ = BigInt(2); exports2.WASI_RIGHT_FD_SEEK = BigInt(4); exports2.WASI_RIGHT_FD_FDSTAT_SET_FLAGS = BigInt(8); exports2.WASI_RIGHT_FD_SYNC = BigInt(16); exports2.WASI_RIGHT_FD_TELL = BigInt(32); exports2.WASI_RIGHT_FD_WRITE = BigInt(64); exports2.WASI_RIGHT_FD_ADVISE = BigInt(128); exports2.WASI_RIGHT_FD_ALLOCATE = BigInt(256); exports2.WASI_RIGHT_PATH_CREATE_DIRECTORY = BigInt(512); exports2.WASI_RIGHT_PATH_CREATE_FILE = BigInt(1024); exports2.WASI_RIGHT_PATH_LINK_SOURCE = BigInt(2048); exports2.WASI_RIGHT_PATH_LINK_TARGET = BigInt(4096); exports2.WASI_RIGHT_PATH_OPEN = BigInt(8192); exports2.WASI_RIGHT_FD_READDIR = BigInt(16384); exports2.WASI_RIGHT_PATH_READLINK = BigInt(32768); exports2.WASI_RIGHT_PATH_RENAME_SOURCE = BigInt(65536); exports2.WASI_RIGHT_PATH_RENAME_TARGET = BigInt(131072); exports2.WASI_RIGHT_PATH_FILESTAT_GET = BigInt(262144); exports2.WASI_RIGHT_PATH_FILESTAT_SET_SIZE = BigInt(524288); exports2.WASI_RIGHT_PATH_FILESTAT_SET_TIMES = BigInt(1048576); exports2.WASI_RIGHT_FD_FILESTAT_GET = BigInt(2097152); exports2.WASI_RIGHT_FD_FILESTAT_SET_SIZE = BigInt(4194304); exports2.WASI_RIGHT_FD_FILESTAT_SET_TIMES = BigInt(8388608); exports2.WASI_RIGHT_PATH_SYMLINK = BigInt(16777216); exports2.WASI_RIGHT_PATH_REMOVE_DIRECTORY = BigInt(33554432); exports2.WASI_RIGHT_PATH_UNLINK_FILE = BigInt(67108864); exports2.WASI_RIGHT_POLL_FD_READWRITE = BigInt(134217728); exports2.WASI_RIGHT_SOCK_SHUTDOWN = BigInt(268435456); exports2.RIGHTS_ALL = exports2.WASI_RIGHT_FD_DATASYNC | exports2.WASI_RIGHT_FD_READ | exports2.WASI_RIGHT_FD_SEEK | exports2.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports2.WASI_RIGHT_FD_SYNC | exports2.WASI_RIGHT_FD_TELL | exports2.WASI_RIGHT_FD_WRITE | exports2.WASI_RIGHT_FD_ADVISE | exports2.WASI_RIGHT_FD_ALLOCATE | exports2.WASI_RIGHT_PATH_CREATE_DIRECTORY | exports2.WASI_RIGHT_PATH_CREATE_FILE | exports2.WASI_RIGHT_PATH_LINK_SOURCE | exports2.WASI_RIGHT_PATH_LINK_TARGET | exports2.WASI_RIGHT_PATH_OPEN | exports2.WASI_RIGHT_FD_READDIR | exports2.WASI_RIGHT_PATH_READLINK | exports2.WASI_RIGHT_PATH_RENAME_SOURCE | exports2.WASI_RIGHT_PATH_RENAME_TARGET | exports2.WASI_RIGHT_PATH_FILESTAT_GET | exports2.WASI_RIGHT_PATH_FILESTAT_SET_SIZE | exports2.WASI_RIGHT_PATH_FILESTAT_SET_TIMES | exports2.WASI_RIGHT_FD_FILESTAT_GET | exports2.WASI_RIGHT_FD_FILESTAT_SET_TIMES | exports2.WASI_RIGHT_FD_FILESTAT_SET_SIZE | exports2.WASI_RIGHT_PATH_SYMLINK | exports2.WASI_RIGHT_PATH_UNLINK_FILE | exports2.WASI_RIGHT_PATH_REMOVE_DIRECTORY | exports2.WASI_RIGHT_POLL_FD_READWRITE | exports2.WASI_RIGHT_SOCK_SHUTDOWN; exports2.RIGHTS_BLOCK_DEVICE_BASE = exports2.RIGHTS_ALL; exports2.RIGHTS_BLOCK_DEVICE_INHERITING = exports2.RIGHTS_ALL; exports2.RIGHTS_CHARACTER_DEVICE_BASE = exports2.RIGHTS_ALL; exports2.RIGHTS_CHARACTER_DEVICE_INHERITING = exports2.RIGHTS_ALL; exports2.RIGHTS_REGULAR_FILE_BASE = exports2.WASI_RIGHT_FD_DATASYNC | exports2.WASI_RIGHT_FD_READ | exports2.WASI_RIGHT_FD_SEEK | exports2.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports2.WASI_RIGHT_FD_SYNC | exports2.WASI_RIGHT_FD_TELL | exports2.WASI_RIGHT_FD_WRITE | exports2.WASI_RIGHT_FD_ADVISE | exports2.WASI_RIGHT_FD_ALLOCATE | exports2.WASI_RIGHT_FD_FILESTAT_GET | exports2.WASI_RIGHT_FD_FILESTAT_SET_SIZE | exports2.WASI_RIGHT_FD_FILESTAT_SET_TIMES | exports2.WASI_RIGHT_POLL_FD_READWRITE; exports2.RIGHTS_REGULAR_FILE_INHERITING = BigInt(0); exports2.RIGHTS_DIRECTORY_BASE = exports2.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports2.WASI_RIGHT_FD_SYNC | exports2.WASI_RIGHT_FD_ADVISE | exports2.WASI_RIGHT_PATH_CREATE_DIRECTORY | exports2.WASI_RIGHT_PATH_CREATE_FILE | exports2.WASI_RIGHT_PATH_LINK_SOURCE | exports2.WASI_RIGHT_PATH_LINK_TARGET | exports2.WASI_RIGHT_PATH_OPEN | exports2.WASI_RIGHT_FD_READDIR | exports2.WASI_RIGHT_PATH_READLINK | exports2.WASI_RIGHT_PATH_RENAME_SOURCE | exports2.WASI_RIGHT_PATH_RENAME_TARGET | exports2.WASI_RIGHT_PATH_FILESTAT_GET | exports2.WASI_RIGHT_PATH_FILESTAT_SET_SIZE | exports2.WASI_RIGHT_PATH_FILESTAT_SET_TIMES | exports2.WASI_RIGHT_FD_FILESTAT_GET | exports2.WASI_RIGHT_FD_FILESTAT_SET_TIMES | exports2.WASI_RIGHT_PATH_SYMLINK | exports2.WASI_RIGHT_PATH_UNLINK_FILE | exports2.WASI_RIGHT_PATH_REMOVE_DIRECTORY | exports2.WASI_RIGHT_POLL_FD_READWRITE; exports2.RIGHTS_DIRECTORY_INHERITING = exports2.RIGHTS_DIRECTORY_BASE | exports2.RIGHTS_REGULAR_FILE_BASE; exports2.RIGHTS_SOCKET_BASE = exports2.WASI_RIGHT_FD_READ | exports2.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports2.WASI_RIGHT_FD_WRITE | exports2.WASI_RIGHT_FD_FILESTAT_GET | exports2.WASI_RIGHT_POLL_FD_READWRITE | exports2.WASI_RIGHT_SOCK_SHUTDOWN; exports2.RIGHTS_SOCKET_INHERITING = exports2.RIGHTS_ALL; exports2.RIGHTS_TTY_BASE = exports2.WASI_RIGHT_FD_READ | exports2.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports2.WASI_RIGHT_FD_WRITE | exports2.WASI_RIGHT_FD_FILESTAT_GET | exports2.WASI_RIGHT_POLL_FD_READWRITE; exports2.RIGHTS_TTY_INHERITING = BigInt(0); exports2.WASI_CLOCK_REALTIME = 0; exports2.WASI_CLOCK_MONOTONIC = 1; exports2.WASI_CLOCK_PROCESS_CPUTIME_ID = 2; exports2.WASI_CLOCK_THREAD_CPUTIME_ID = 3; exports2.WASI_EVENTTYPE_CLOCK = 0; exports2.WASI_EVENTTYPE_FD_READ = 1; exports2.WASI_EVENTTYPE_FD_WRITE = 2; exports2.WASI_FILESTAT_SET_ATIM = 1 << 0; exports2.WASI_FILESTAT_SET_ATIM_NOW = 1 << 1; exports2.WASI_FILESTAT_SET_MTIM = 1 << 2; exports2.WASI_FILESTAT_SET_MTIM_NOW = 1 << 3; exports2.WASI_O_CREAT = 1 << 0; exports2.WASI_O_DIRECTORY = 1 << 1; exports2.WASI_O_EXCL = 1 << 2; exports2.WASI_O_TRUNC = 1 << 3; exports2.WASI_PREOPENTYPE_DIR = 0; exports2.WASI_DIRCOOKIE_START = 0; exports2.WASI_STDIN_FILENO = 0; exports2.WASI_STDOUT_FILENO = 1; exports2.WASI_STDERR_FILENO = 2; exports2.WASI_WHENCE_SET = 0; exports2.WASI_WHENCE_CUR = 1; exports2.WASI_WHENCE_END = 2; exports2.ERROR_MAP = { E2BIG: exports2.WASI_E2BIG, EACCES: exports2.WASI_EACCES, EADDRINUSE: exports2.WASI_EADDRINUSE, EADDRNOTAVAIL: exports2.WASI_EADDRNOTAVAIL, EAFNOSUPPORT: exports2.WASI_EAFNOSUPPORT, EALREADY: exports2.WASI_EALREADY, EAGAIN: exports2.WASI_EAGAIN, // EBADE: WASI_EBADE, EBADF: exports2.WASI_EBADF, // EBADFD: WASI_EBADFD, EBADMSG: exports2.WASI_EBADMSG, // EBADR: WASI_EBADR, // EBADRQC: WASI_EBADRQC, // EBADSLT: WASI_EBADSLT, EBUSY: exports2.WASI_EBUSY, ECANCELED: exports2.WASI_ECANCELED, ECHILD: exports2.WASI_ECHILD, // ECHRNG: WASI_ECHRNG, // ECOMM: WASI_ECOMM, ECONNABORTED: exports2.WASI_ECONNABORTED, ECONNREFUSED: exports2.WASI_ECONNREFUSED, ECONNRESET: exports2.WASI_ECONNRESET, EDEADLOCK: exports2.WASI_EDEADLK, EDESTADDRREQ: exports2.WASI_EDESTADDRREQ, EDOM: exports2.WASI_EDOM, EDQUOT: exports2.WASI_EDQUOT, EEXIST: exports2.WASI_EEXIST, EFAULT: exports2.WASI_EFAULT, EFBIG: exports2.WASI_EFBIG, EHOSTDOWN: exports2.WASI_EHOSTUNREACH, EHOSTUNREACH: exports2.WASI_EHOSTUNREACH, // EHWPOISON: WASI_EHWPOISON, EIDRM: exports2.WASI_EIDRM, EILSEQ: exports2.WASI_EILSEQ, EINPROGRESS: exports2.WASI_EINPROGRESS, EINTR: exports2.WASI_EINTR, EINVAL: exports2.WASI_EINVAL, EIO: exports2.WASI_EIO, EISCONN: exports2.WASI_EISCONN, EISDIR: exports2.WASI_EISDIR, ELOOP: exports2.WASI_ELOOP, EMFILE: exports2.WASI_EMFILE, EMLINK: exports2.WASI_EMLINK, EMSGSIZE: exports2.WASI_EMSGSIZE, EMULTIHOP: exports2.WASI_EMULTIHOP, ENAMETOOLONG: exports2.WASI_ENAMETOOLONG, ENETDOWN: exports2.WASI_ENETDOWN, ENETRESET: exports2.WASI_ENETRESET, ENETUNREACH: exports2.WASI_ENETUNREACH, ENFILE: exports2.WASI_ENFILE, ENOBUFS: exports2.WASI_ENOBUFS, ENODEV: exports2.WASI_ENODEV, ENOENT: exports2.WASI_ENOENT, ENOEXEC: exports2.WASI_ENOEXEC, ENOLCK: exports2.WASI_ENOLCK, ENOLINK: exports2.WASI_ENOLINK, ENOMEM: exports2.WASI_ENOMEM, ENOMSG: exports2.WASI_ENOMSG, ENOPROTOOPT: exports2.WASI_ENOPROTOOPT, ENOSPC: exports2.WASI_ENOSPC, ENOSYS: exports2.WASI_ENOSYS, ENOTCONN: exports2.WASI_ENOTCONN, ENOTDIR: exports2.WASI_ENOTDIR, ENOTEMPTY: exports2.WASI_ENOTEMPTY, ENOTRECOVERABLE: exports2.WASI_ENOTRECOVERABLE, ENOTSOCK: exports2.WASI_ENOTSOCK, ENOTTY: exports2.WASI_ENOTTY, ENXIO: exports2.WASI_ENXIO, EOVERFLOW: exports2.WASI_EOVERFLOW, EOWNERDEAD: exports2.WASI_EOWNERDEAD, EPERM: exports2.WASI_EPERM, EPIPE: exports2.WASI_EPIPE, EPROTO: exports2.WASI_EPROTO, EPROTONOSUPPORT: exports2.WASI_EPROTONOSUPPORT, EPROTOTYPE: exports2.WASI_EPROTOTYPE, ERANGE: exports2.WASI_ERANGE, EROFS: exports2.WASI_EROFS, ESPIPE: exports2.WASI_ESPIPE, ESRCH: exports2.WASI_ESRCH, ESTALE: exports2.WASI_ESTALE, ETIMEDOUT: exports2.WASI_ETIMEDOUT, ETXTBSY: exports2.WASI_ETXTBSY, EXDEV: exports2.WASI_EXDEV }; exports2.SIGNAL_MAP = { [exports2.WASI_SIGHUP]: "SIGHUP", [exports2.WASI_SIGINT]: "SIGINT", [exports2.WASI_SIGQUIT]: "SIGQUIT", [exports2.WASI_SIGILL]: "SIGILL", [exports2.WASI_SIGTRAP]: "SIGTRAP", [exports2.WASI_SIGABRT]: "SIGABRT", [exports2.WASI_SIGBUS]: "SIGBUS", [exports2.WASI_SIGFPE]: "SIGFPE", [exports2.WASI_SIGKILL]: "SIGKILL", [exports2.WASI_SIGUSR1]: "SIGUSR1", [exports2.WASI_SIGSEGV]: "SIGSEGV", [exports2.WASI_SIGUSR2]: "SIGUSR2", [exports2.WASI_SIGPIPE]: "SIGPIPE", [exports2.WASI_SIGALRM]: "SIGALRM", [exports2.WASI_SIGTERM]: "SIGTERM", [exports2.WASI_SIGCHLD]: "SIGCHLD", [exports2.WASI_SIGCONT]: "SIGCONT", [exports2.WASI_SIGSTOP]: "SIGSTOP", [exports2.WASI_SIGTSTP]: "SIGTSTP", [exports2.WASI_SIGTTIN]: "SIGTTIN", [exports2.WASI_SIGTTOU]: "SIGTTOU", [exports2.WASI_SIGURG]: "SIGURG", [exports2.WASI_SIGXCPU]: "SIGXCPU", [exports2.WASI_SIGXFSZ]: "SIGXFSZ", [exports2.WASI_SIGVTALRM]: "SIGVTALRM" }; } }); // node_modules/wasi-js/dist/wasi.js var require_wasi = __commonJS({ "node_modules/wasi-js/dist/wasi.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.SOCKET_DEFAULT_RIGHTS = void 0; var debug_1 = __importDefault(require_src()); var log = (0, debug_1.default)("wasi"); var logOpen = (0, debug_1.default)("wasi:open"); var SC_OPEN_MAX = 32768; var types_1 = require_types(); var typedarray_to_buffer_1 = __importDefault(require_typedarray_to_buffer()); var constants_1 = require_constants(); var STDIN_DEFAULT_RIGHTS = constants_1.WASI_RIGHT_FD_DATASYNC | constants_1.WASI_RIGHT_FD_READ | constants_1.WASI_RIGHT_FD_SYNC | constants_1.WASI_RIGHT_FD_ADVISE | constants_1.WASI_RIGHT_FD_FILESTAT_GET | constants_1.WASI_RIGHT_POLL_FD_READWRITE; var STDOUT_DEFAULT_RIGHTS = constants_1.WASI_RIGHT_FD_DATASYNC | constants_1.WASI_RIGHT_FD_WRITE | constants_1.WASI_RIGHT_FD_SYNC | constants_1.WASI_RIGHT_FD_ADVISE | constants_1.WASI_RIGHT_FD_FILESTAT_GET | constants_1.WASI_RIGHT_POLL_FD_READWRITE; var STDERR_DEFAULT_RIGHTS = STDOUT_DEFAULT_RIGHTS; exports2.SOCKET_DEFAULT_RIGHTS = constants_1.WASI_RIGHT_FD_DATASYNC | constants_1.WASI_RIGHT_FD_READ | constants_1.WASI_RIGHT_FD_WRITE | constants_1.WASI_RIGHT_FD_ADVISE | constants_1.WASI_RIGHT_FD_FILESTAT_GET | constants_1.WASI_RIGHT_POLL_FD_READWRITE | constants_1.WASI_RIGHT_FD_FDSTAT_SET_FLAGS; var msToNs = (ms) => { const msInt = Math.trunc(ms); const decimal = BigInt(Math.round((ms - msInt) * 1e6)); const ns = BigInt(msInt) * BigInt(1e6); return ns + decimal; }; var nsToMs = (ns) => { if (typeof ns === "number") { ns = Math.trunc(ns); } const nsInt = BigInt(ns); return Number(nsInt / BigInt(1e6)); }; var wrap = (f) => (...args2) => { try { return f(...args2); } catch (err) { let e = err; while (e.prev != null) { e = e.prev; } if (e?.code && typeof e?.code === "string") { return constants_1.ERROR_MAP[e.code] || constants_1.WASI_EINVAL; } if (e instanceof types_1.WASIError) { return e.errno; } throw e; } }; var stat = (wasi, fd) => { const entry = wasi.FD_MAP.get(fd); if (!entry) { throw new types_1.WASIError(constants_1.WASI_EBADF); } if (entry.filetype === void 0) { const stats = wasi.fstatSync(entry.real); const { filetype, rightsBase, rightsInheriting } = translateFileAttributes(wasi, fd, stats); entry.filetype = filetype; if (!entry.rights) { entry.rights = { base: rightsBase, inheriting: rightsInheriting }; } } return entry; }; var translateFileAttributes = (wasi, fd, stats) => { switch (true) { case stats.isBlockDevice(): return { filetype: constants_1.WASI_FILETYPE_BLOCK_DEVICE, rightsBase: constants_1.RIGHTS_BLOCK_DEVICE_BASE, rightsInheriting: constants_1.RIGHTS_BLOCK_DEVICE_INHERITING }; case stats.isCharacterDevice(): { const filetype = constants_1.WASI_FILETYPE_CHARACTER_DEVICE; if (fd !== void 0 && wasi.bindings.isTTY(fd)) { return { filetype, rightsBase: constants_1.RIGHTS_TTY_BASE, rightsInheriting: constants_1.RIGHTS_TTY_INHERITING }; } return { filetype, rightsBase: constants_1.RIGHTS_CHARACTER_DEVICE_BASE, rightsInheriting: constants_1.RIGHTS_CHARACTER_DEVICE_INHERITING }; } case stats.isDirectory(): return { filetype: constants_1.WASI_FILETYPE_DIRECTORY, rightsBase: constants_1.RIGHTS_DIRECTORY_BASE, rightsInheriting: constants_1.RIGHTS_DIRECTORY_INHERITING }; case stats.isFIFO(): return { filetype: constants_1.WASI_FILETYPE_SOCKET_STREAM, rightsBase: constants_1.RIGHTS_SOCKET_BASE, rightsInheriting: constants_1.RIGHTS_SOCKET_INHERITING }; case stats.isFile(): return { filetype: constants_1.WASI_FILETYPE_REGULAR_FILE, rightsBase: constants_1.RIGHTS_REGULAR_FILE_BASE, rightsInheriting: constants_1.RIGHTS_REGULAR_FILE_INHERITING }; case stats.isSocket(): return { filetype: constants_1.WASI_FILETYPE_SOCKET_STREAM, rightsBase: constants_1.RIGHTS_SOCKET_BASE, rightsInheriting: constants_1.RIGHTS_SOCKET_INHERITING }; case stats.isSymbolicLink(): return { filetype: constants_1.WASI_FILETYPE_SYMBOLIC_LINK, rightsBase: BigInt(0), rightsInheriting: BigInt(0) }; default: return { filetype: constants_1.WASI_FILETYPE_UNKNOWN, rightsBase: BigInt(0), rightsInheriting: BigInt(0) }; } }; var warnedAboutSleep = false; var WASI2 = class { constructor(wasiConfig) { this.lastStdin = 0; this.env = {}; this.sleep = wasiConfig.sleep; this.getStdin = wasiConfig.getStdin; this.sendStdout = wasiConfig.sendStdout; this.sendStderr = wasiConfig.sendStderr; let preopens = {}; if (wasiConfig.preopens) { preopens = wasiConfig.preopens; } if (wasiConfig && wasiConfig.env) { this.env = wasiConfig.env; } let args2 = []; if (wasiConfig && wasiConfig.args) { args2 = wasiConfig.args; } this.memory = void 0; this.view = void 0; this.bindings = wasiConfig.bindings; const fs2 = this.bindings.fs; this.FD_MAP = /* @__PURE__ */ new Map([ [ constants_1.WASI_STDIN_FILENO, { real: 0, filetype: constants_1.WASI_FILETYPE_CHARACTER_DEVICE, // offset: BigInt(0), rights: { base: STDIN_DEFAULT_RIGHTS, inheriting: BigInt(0) }, path: "/dev/stdin" } ], [ constants_1.WASI_STDOUT_FILENO, { real: 1, filetype: constants_1.WASI_FILETYPE_CHARACTER_DEVICE, // offset: BigInt(0), rights: { base: STDOUT_DEFAULT_RIGHTS, inheriting: BigInt(0) }, path: "/dev/stdout" } ], [ constants_1.WASI_STDERR_FILENO, { real: 2, filetype: constants_1.WASI_FILETYPE_CHARACTER_DEVICE, // offset: BigInt(0), rights: { base: STDERR_DEFAULT_RIGHTS, inheriting: BigInt(0) }, path: "/dev/stderr" } ] ]); const path2 = this.bindings.path; for (const [k, v] of Object.entries(preopens)) { const real = fs2.openSync(v, fs2.constants.O_RDONLY); const newfd = this.getUnusedFileDescriptor(); this.FD_MAP.set(newfd, { real, filetype: constants_1.WASI_FILETYPE_DIRECTORY, // offset: BigInt(0), rights: { base: constants_1.RIGHTS_DIRECTORY_BASE, inheriting: constants_1.RIGHTS_DIRECTORY_INHERITING }, fakePath: k, path: v }); } const getiovs = (iovs, iovsLen) => { this.refreshMemory(); const buffers = Array.from({ length: iovsLen }, (_, i) => { const ptr = iovs + i * 8; const buf = this.view.getUint32(ptr, true); let bufLen = this.view.getUint32(ptr + 4, true); if (bufLen > this.memory.buffer.byteLength - buf) { log("getiovs: warning -- truncating buffer to fit in memory"); bufLen = Math.min(bufLen, Math.max(0, this.memory.buffer.byteLength - buf)); } try { const buffer = new Uint8Array(this.memory.buffer, buf, bufLen); return (0, typedarray_to_buffer_1.default)(buffer); } catch (err) { console.warn("WASI.getiovs -- invalid buffer", err); throw new types_1.WASIError(constants_1.WASI_EINVAL);