diff options
Diffstat (limited to 'src/js/out/modules_dev/node/wasi.js')
-rw-r--r-- | src/js/out/modules_dev/node/wasi.js | 1104 |
1 files changed, 0 insertions, 1104 deletions
diff --git a/src/js/out/modules_dev/node/wasi.js b/src/js/out/modules_dev/node/wasi.js deleted file mode 100644 index da35af5e2..000000000 --- a/src/js/out/modules_dev/node/wasi.js +++ /dev/null @@ -1,1104 +0,0 @@ -var nodeFsConstants = constants, __getOwnPropNames = Object.getOwnPropertyNames, __commonJS = (cb, mod) => function __require2() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}, require_types = __commonJS({ - "node_modules/wasi-js/dist/types.js"(exports) { - Object.defineProperty(exports, "__esModule", { value: !0 }), exports.WASIKillError = exports.WASIExitError = exports.WASIError = void 0; - var WASIError = class extends Error { - constructor(errno) { - super(); - this.errno = errno, Object.setPrototypeOf(this, WASIError.prototype); - } - }; - exports.WASIError = WASIError; - var WASIExitError = class extends Error { - constructor(code) { - super(`WASI Exit error: ${code}`); - this.code = code, Object.setPrototypeOf(this, WASIExitError.prototype); - } - }; - exports.WASIExitError = WASIExitError; - var WASIKillError = class extends Error { - constructor(signal) { - super(`WASI Kill signal: ${signal}`); - this.signal = signal, Object.setPrototypeOf(this, WASIKillError.prototype); - } - }; - exports.WASIKillError = WASIKillError; - } -}), require_constants = __commonJS({ - "node_modules/wasi-js/dist/constants.js"(exports) { - Object.defineProperty(exports, "__esModule", { value: !0 }), exports.WASI_ENOMSG = exports.WASI_ENOMEM = exports.WASI_ENOLINK = exports.WASI_ENOLCK = exports.WASI_ENOEXEC = exports.WASI_ENOENT = exports.WASI_ENODEV = exports.WASI_ENOBUFS = exports.WASI_ENFILE = exports.WASI_ENETUNREACH = exports.WASI_ENETRESET = exports.WASI_ENETDOWN = exports.WASI_ENAMETOOLONG = exports.WASI_EMULTIHOP = exports.WASI_EMSGSIZE = exports.WASI_EMLINK = exports.WASI_EMFILE = exports.WASI_ELOOP = exports.WASI_EISDIR = exports.WASI_EISCONN = exports.WASI_EIO = exports.WASI_EINVAL = exports.WASI_EINTR = exports.WASI_EINPROGRESS = exports.WASI_EILSEQ = exports.WASI_EIDRM = exports.WASI_EHOSTUNREACH = exports.WASI_EFBIG = exports.WASI_EFAULT = exports.WASI_EEXIST = exports.WASI_EDQUOT = exports.WASI_EDOM = exports.WASI_EDESTADDRREQ = exports.WASI_EDEADLK = exports.WASI_ECONNRESET = exports.WASI_ECONNREFUSED = exports.WASI_ECONNABORTED = exports.WASI_ECHILD = exports.WASI_ECANCELED = exports.WASI_EBUSY = exports.WASI_EBADMSG = exports.WASI_EBADF = exports.WASI_EALREADY = exports.WASI_EAGAIN = exports.WASI_EAFNOSUPPORT = exports.WASI_EADDRNOTAVAIL = exports.WASI_EADDRINUSE = exports.WASI_EACCES = exports.WASI_E2BIG = exports.WASI_ESUCCESS = void 0, exports.WASI_SIGVTALRM = exports.WASI_SIGUSR2 = exports.WASI_SIGUSR1 = exports.WASI_SIGURG = exports.WASI_SIGTTOU = exports.WASI_SIGTTIN = exports.WASI_SIGTSTP = exports.WASI_SIGTRAP = exports.WASI_SIGTERM = exports.WASI_SIGSTOP = exports.WASI_SIGSEGV = exports.WASI_SIGQUIT = exports.WASI_SIGPIPE = exports.WASI_SIGKILL = exports.WASI_SIGINT = exports.WASI_SIGILL = exports.WASI_SIGHUP = exports.WASI_SIGFPE = exports.WASI_SIGCONT = exports.WASI_SIGCHLD = exports.WASI_SIGBUS = exports.WASI_SIGALRM = exports.WASI_SIGABRT = exports.WASI_ENOTCAPABLE = exports.WASI_EXDEV = exports.WASI_ETXTBSY = exports.WASI_ETIMEDOUT = exports.WASI_ESTALE = exports.WASI_ESRCH = exports.WASI_ESPIPE = exports.WASI_EROFS = exports.WASI_ERANGE = exports.WASI_EPROTOTYPE = exports.WASI_EPROTONOSUPPORT = exports.WASI_EPROTO = exports.WASI_EPIPE = exports.WASI_EPERM = exports.WASI_EOWNERDEAD = exports.WASI_EOVERFLOW = exports.WASI_ENXIO = exports.WASI_ENOTTY = exports.WASI_ENOTSUP = exports.WASI_ENOTSOCK = exports.WASI_ENOTRECOVERABLE = exports.WASI_ENOTEMPTY = exports.WASI_ENOTDIR = exports.WASI_ENOTCONN = exports.WASI_ENOSYS = exports.WASI_ENOSPC = exports.WASI_ENOPROTOOPT = void 0, exports.RIGHTS_REGULAR_FILE_BASE = exports.RIGHTS_CHARACTER_DEVICE_INHERITING = exports.RIGHTS_CHARACTER_DEVICE_BASE = exports.RIGHTS_BLOCK_DEVICE_INHERITING = exports.RIGHTS_BLOCK_DEVICE_BASE = exports.RIGHTS_ALL = exports.WASI_RIGHT_SOCK_SHUTDOWN = exports.WASI_RIGHT_POLL_FD_READWRITE = exports.WASI_RIGHT_PATH_UNLINK_FILE = exports.WASI_RIGHT_PATH_REMOVE_DIRECTORY = exports.WASI_RIGHT_PATH_SYMLINK = exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES = exports.WASI_RIGHT_FD_FILESTAT_SET_SIZE = exports.WASI_RIGHT_FD_FILESTAT_GET = exports.WASI_RIGHT_PATH_FILESTAT_SET_TIMES = exports.WASI_RIGHT_PATH_FILESTAT_SET_SIZE = exports.WASI_RIGHT_PATH_FILESTAT_GET = exports.WASI_RIGHT_PATH_RENAME_TARGET = exports.WASI_RIGHT_PATH_RENAME_SOURCE = exports.WASI_RIGHT_PATH_READLINK = exports.WASI_RIGHT_FD_READDIR = exports.WASI_RIGHT_PATH_OPEN = exports.WASI_RIGHT_PATH_LINK_TARGET = exports.WASI_RIGHT_PATH_LINK_SOURCE = exports.WASI_RIGHT_PATH_CREATE_FILE = exports.WASI_RIGHT_PATH_CREATE_DIRECTORY = exports.WASI_RIGHT_FD_ALLOCATE = exports.WASI_RIGHT_FD_ADVISE = exports.WASI_RIGHT_FD_WRITE = exports.WASI_RIGHT_FD_TELL = exports.WASI_RIGHT_FD_SYNC = exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS = exports.WASI_RIGHT_FD_SEEK = exports.WASI_RIGHT_FD_READ = exports.WASI_RIGHT_FD_DATASYNC = exports.WASI_FDFLAG_SYNC = exports.WASI_FDFLAG_RSYNC = exports.WASI_FDFLAG_NONBLOCK = exports.WASI_FDFLAG_DSYNC = exports.WASI_FDFLAG_APPEND = exports.WASI_FILETYPE_SYMBOLIC_LINK = exports.WASI_FILETYPE_SOCKET_STREAM = exports.WASI_FILETYPE_SOCKET_DGRAM = exports.WASI_FILETYPE_REGULAR_FILE = exports.WASI_FILETYPE_DIRECTORY = exports.WASI_FILETYPE_CHARACTER_DEVICE = exports.WASI_FILETYPE_BLOCK_DEVICE = exports.WASI_FILETYPE_UNKNOWN = exports.WASI_SIGXFSZ = exports.WASI_SIGXCPU = void 0, exports.SIGNAL_MAP = exports.ERROR_MAP = exports.WASI_WHENCE_END = exports.WASI_WHENCE_CUR = exports.WASI_WHENCE_SET = exports.WASI_STDERR_FILENO = exports.WASI_STDOUT_FILENO = exports.WASI_STDIN_FILENO = exports.WASI_DIRCOOKIE_START = exports.WASI_PREOPENTYPE_DIR = exports.WASI_O_TRUNC = exports.WASI_O_EXCL = exports.WASI_O_DIRECTORY = exports.WASI_O_CREAT = exports.WASI_FILESTAT_SET_MTIM_NOW = exports.WASI_FILESTAT_SET_MTIM = exports.WASI_FILESTAT_SET_ATIM_NOW = exports.WASI_FILESTAT_SET_ATIM = exports.WASI_EVENTTYPE_FD_WRITE = exports.WASI_EVENTTYPE_FD_READ = exports.WASI_EVENTTYPE_CLOCK = exports.WASI_CLOCK_THREAD_CPUTIME_ID = exports.WASI_CLOCK_PROCESS_CPUTIME_ID = exports.WASI_CLOCK_MONOTONIC = exports.WASI_CLOCK_REALTIME = exports.RIGHTS_TTY_INHERITING = exports.RIGHTS_TTY_BASE = exports.RIGHTS_SOCKET_INHERITING = exports.RIGHTS_SOCKET_BASE = exports.RIGHTS_DIRECTORY_INHERITING = exports.RIGHTS_DIRECTORY_BASE = exports.RIGHTS_REGULAR_FILE_INHERITING = void 0, exports.WASI_ESUCCESS = 0, exports.WASI_E2BIG = 1, exports.WASI_EACCES = 2, exports.WASI_EADDRINUSE = 3, exports.WASI_EADDRNOTAVAIL = 4, exports.WASI_EAFNOSUPPORT = 5, exports.WASI_EAGAIN = 6, exports.WASI_EALREADY = 7, exports.WASI_EBADF = 8, exports.WASI_EBADMSG = 9, exports.WASI_EBUSY = 10, exports.WASI_ECANCELED = 11, exports.WASI_ECHILD = 12, exports.WASI_ECONNABORTED = 13, exports.WASI_ECONNREFUSED = 14, exports.WASI_ECONNRESET = 15, exports.WASI_EDEADLK = 16, exports.WASI_EDESTADDRREQ = 17, exports.WASI_EDOM = 18, exports.WASI_EDQUOT = 19, exports.WASI_EEXIST = 20, exports.WASI_EFAULT = 21, exports.WASI_EFBIG = 22, exports.WASI_EHOSTUNREACH = 23, exports.WASI_EIDRM = 24, exports.WASI_EILSEQ = 25, exports.WASI_EINPROGRESS = 26, exports.WASI_EINTR = 27, exports.WASI_EINVAL = 28, exports.WASI_EIO = 29, exports.WASI_EISCONN = 30, exports.WASI_EISDIR = 31, exports.WASI_ELOOP = 32, exports.WASI_EMFILE = 33, exports.WASI_EMLINK = 34, exports.WASI_EMSGSIZE = 35, exports.WASI_EMULTIHOP = 36, exports.WASI_ENAMETOOLONG = 37, exports.WASI_ENETDOWN = 38, exports.WASI_ENETRESET = 39, exports.WASI_ENETUNREACH = 40, exports.WASI_ENFILE = 41, exports.WASI_ENOBUFS = 42, exports.WASI_ENODEV = 43, exports.WASI_ENOENT = 44, exports.WASI_ENOEXEC = 45, exports.WASI_ENOLCK = 46, exports.WASI_ENOLINK = 47, exports.WASI_ENOMEM = 48, exports.WASI_ENOMSG = 49, exports.WASI_ENOPROTOOPT = 50, exports.WASI_ENOSPC = 51, exports.WASI_ENOSYS = 52, exports.WASI_ENOTCONN = 53, exports.WASI_ENOTDIR = 54, exports.WASI_ENOTEMPTY = 55, exports.WASI_ENOTRECOVERABLE = 56, exports.WASI_ENOTSOCK = 57, exports.WASI_ENOTSUP = 58, exports.WASI_ENOTTY = 59, exports.WASI_ENXIO = 60, exports.WASI_EOVERFLOW = 61, exports.WASI_EOWNERDEAD = 62, exports.WASI_EPERM = 63, exports.WASI_EPIPE = 64, exports.WASI_EPROTO = 65, exports.WASI_EPROTONOSUPPORT = 66, exports.WASI_EPROTOTYPE = 67, exports.WASI_ERANGE = 68, exports.WASI_EROFS = 69, exports.WASI_ESPIPE = 70, exports.WASI_ESRCH = 71, exports.WASI_ESTALE = 72, exports.WASI_ETIMEDOUT = 73, exports.WASI_ETXTBSY = 74, exports.WASI_EXDEV = 75, exports.WASI_ENOTCAPABLE = 76, exports.WASI_SIGABRT = 0, exports.WASI_SIGALRM = 1, exports.WASI_SIGBUS = 2, exports.WASI_SIGCHLD = 3, exports.WASI_SIGCONT = 4, exports.WASI_SIGFPE = 5, exports.WASI_SIGHUP = 6, exports.WASI_SIGILL = 7, exports.WASI_SIGINT = 8, exports.WASI_SIGKILL = 9, exports.WASI_SIGPIPE = 10, exports.WASI_SIGQUIT = 11, exports.WASI_SIGSEGV = 12, exports.WASI_SIGSTOP = 13, exports.WASI_SIGTERM = 14, exports.WASI_SIGTRAP = 15, exports.WASI_SIGTSTP = 16, exports.WASI_SIGTTIN = 17, exports.WASI_SIGTTOU = 18, exports.WASI_SIGURG = 19, exports.WASI_SIGUSR1 = 20, exports.WASI_SIGUSR2 = 21, exports.WASI_SIGVTALRM = 22, exports.WASI_SIGXCPU = 23, exports.WASI_SIGXFSZ = 24, exports.WASI_FILETYPE_UNKNOWN = 0, exports.WASI_FILETYPE_BLOCK_DEVICE = 1, exports.WASI_FILETYPE_CHARACTER_DEVICE = 2, exports.WASI_FILETYPE_DIRECTORY = 3, exports.WASI_FILETYPE_REGULAR_FILE = 4, exports.WASI_FILETYPE_SOCKET_DGRAM = 5, exports.WASI_FILETYPE_SOCKET_STREAM = 6, exports.WASI_FILETYPE_SYMBOLIC_LINK = 7, exports.WASI_FDFLAG_APPEND = 1, exports.WASI_FDFLAG_DSYNC = 2, exports.WASI_FDFLAG_NONBLOCK = 4, exports.WASI_FDFLAG_RSYNC = 8, exports.WASI_FDFLAG_SYNC = 16, exports.WASI_RIGHT_FD_DATASYNC = BigInt(1), exports.WASI_RIGHT_FD_READ = BigInt(2), exports.WASI_RIGHT_FD_SEEK = BigInt(4), exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS = BigInt(8), exports.WASI_RIGHT_FD_SYNC = BigInt(16), exports.WASI_RIGHT_FD_TELL = BigInt(32), exports.WASI_RIGHT_FD_WRITE = BigInt(64), exports.WASI_RIGHT_FD_ADVISE = BigInt(128), exports.WASI_RIGHT_FD_ALLOCATE = BigInt(256), exports.WASI_RIGHT_PATH_CREATE_DIRECTORY = BigInt(512), exports.WASI_RIGHT_PATH_CREATE_FILE = BigInt(1024), exports.WASI_RIGHT_PATH_LINK_SOURCE = BigInt(2048), exports.WASI_RIGHT_PATH_LINK_TARGET = BigInt(4096), exports.WASI_RIGHT_PATH_OPEN = BigInt(8192), exports.WASI_RIGHT_FD_READDIR = BigInt(16384), exports.WASI_RIGHT_PATH_READLINK = BigInt(32768), exports.WASI_RIGHT_PATH_RENAME_SOURCE = BigInt(65536), exports.WASI_RIGHT_PATH_RENAME_TARGET = BigInt(131072), exports.WASI_RIGHT_PATH_FILESTAT_GET = BigInt(262144), exports.WASI_RIGHT_PATH_FILESTAT_SET_SIZE = BigInt(524288), exports.WASI_RIGHT_PATH_FILESTAT_SET_TIMES = BigInt(1048576), exports.WASI_RIGHT_FD_FILESTAT_GET = BigInt(2097152), exports.WASI_RIGHT_FD_FILESTAT_SET_SIZE = BigInt(4194304), exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES = BigInt(8388608), exports.WASI_RIGHT_PATH_SYMLINK = BigInt(16777216), exports.WASI_RIGHT_PATH_REMOVE_DIRECTORY = BigInt(33554432), exports.WASI_RIGHT_PATH_UNLINK_FILE = BigInt(67108864), exports.WASI_RIGHT_POLL_FD_READWRITE = BigInt(134217728), exports.WASI_RIGHT_SOCK_SHUTDOWN = BigInt(268435456), exports.RIGHTS_ALL = exports.WASI_RIGHT_FD_DATASYNC | exports.WASI_RIGHT_FD_READ | exports.WASI_RIGHT_FD_SEEK | exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports.WASI_RIGHT_FD_SYNC | exports.WASI_RIGHT_FD_TELL | exports.WASI_RIGHT_FD_WRITE | exports.WASI_RIGHT_FD_ADVISE | exports.WASI_RIGHT_FD_ALLOCATE | exports.WASI_RIGHT_PATH_CREATE_DIRECTORY | exports.WASI_RIGHT_PATH_CREATE_FILE | exports.WASI_RIGHT_PATH_LINK_SOURCE | exports.WASI_RIGHT_PATH_LINK_TARGET | exports.WASI_RIGHT_PATH_OPEN | exports.WASI_RIGHT_FD_READDIR | exports.WASI_RIGHT_PATH_READLINK | exports.WASI_RIGHT_PATH_RENAME_SOURCE | exports.WASI_RIGHT_PATH_RENAME_TARGET | exports.WASI_RIGHT_PATH_FILESTAT_GET | exports.WASI_RIGHT_PATH_FILESTAT_SET_SIZE | exports.WASI_RIGHT_PATH_FILESTAT_SET_TIMES | exports.WASI_RIGHT_FD_FILESTAT_GET | exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES | exports.WASI_RIGHT_FD_FILESTAT_SET_SIZE | exports.WASI_RIGHT_PATH_SYMLINK | exports.WASI_RIGHT_PATH_UNLINK_FILE | exports.WASI_RIGHT_PATH_REMOVE_DIRECTORY | exports.WASI_RIGHT_POLL_FD_READWRITE | exports.WASI_RIGHT_SOCK_SHUTDOWN, exports.RIGHTS_BLOCK_DEVICE_BASE = exports.RIGHTS_ALL, exports.RIGHTS_BLOCK_DEVICE_INHERITING = exports.RIGHTS_ALL, exports.RIGHTS_CHARACTER_DEVICE_BASE = exports.RIGHTS_ALL, exports.RIGHTS_CHARACTER_DEVICE_INHERITING = exports.RIGHTS_ALL, exports.RIGHTS_REGULAR_FILE_BASE = exports.WASI_RIGHT_FD_DATASYNC | exports.WASI_RIGHT_FD_READ | exports.WASI_RIGHT_FD_SEEK | exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports.WASI_RIGHT_FD_SYNC | exports.WASI_RIGHT_FD_TELL | exports.WASI_RIGHT_FD_WRITE | exports.WASI_RIGHT_FD_ADVISE | exports.WASI_RIGHT_FD_ALLOCATE | exports.WASI_RIGHT_FD_FILESTAT_GET | exports.WASI_RIGHT_FD_FILESTAT_SET_SIZE | exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES | exports.WASI_RIGHT_POLL_FD_READWRITE, exports.RIGHTS_REGULAR_FILE_INHERITING = BigInt(0), exports.RIGHTS_DIRECTORY_BASE = exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports.WASI_RIGHT_FD_SYNC | exports.WASI_RIGHT_FD_ADVISE | exports.WASI_RIGHT_PATH_CREATE_DIRECTORY | exports.WASI_RIGHT_PATH_CREATE_FILE | exports.WASI_RIGHT_PATH_LINK_SOURCE | exports.WASI_RIGHT_PATH_LINK_TARGET | exports.WASI_RIGHT_PATH_OPEN | exports.WASI_RIGHT_FD_READDIR | exports.WASI_RIGHT_PATH_READLINK | exports.WASI_RIGHT_PATH_RENAME_SOURCE | exports.WASI_RIGHT_PATH_RENAME_TARGET | exports.WASI_RIGHT_PATH_FILESTAT_GET | exports.WASI_RIGHT_PATH_FILESTAT_SET_SIZE | exports.WASI_RIGHT_PATH_FILESTAT_SET_TIMES | exports.WASI_RIGHT_FD_FILESTAT_GET | exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES | exports.WASI_RIGHT_PATH_SYMLINK | exports.WASI_RIGHT_PATH_UNLINK_FILE | exports.WASI_RIGHT_PATH_REMOVE_DIRECTORY | exports.WASI_RIGHT_POLL_FD_READWRITE, exports.RIGHTS_DIRECTORY_INHERITING = exports.RIGHTS_DIRECTORY_BASE | exports.RIGHTS_REGULAR_FILE_BASE, exports.RIGHTS_SOCKET_BASE = exports.WASI_RIGHT_FD_READ | exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports.WASI_RIGHT_FD_WRITE | exports.WASI_RIGHT_FD_FILESTAT_GET | exports.WASI_RIGHT_POLL_FD_READWRITE | exports.WASI_RIGHT_SOCK_SHUTDOWN, exports.RIGHTS_SOCKET_INHERITING = exports.RIGHTS_ALL, exports.RIGHTS_TTY_BASE = exports.WASI_RIGHT_FD_READ | exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS | exports.WASI_RIGHT_FD_WRITE | exports.WASI_RIGHT_FD_FILESTAT_GET | exports.WASI_RIGHT_POLL_FD_READWRITE, exports.RIGHTS_TTY_INHERITING = BigInt(0), exports.WASI_CLOCK_REALTIME = 0, exports.WASI_CLOCK_MONOTONIC = 1, exports.WASI_CLOCK_PROCESS_CPUTIME_ID = 2, exports.WASI_CLOCK_THREAD_CPUTIME_ID = 3, exports.WASI_EVENTTYPE_CLOCK = 0, exports.WASI_EVENTTYPE_FD_READ = 1, exports.WASI_EVENTTYPE_FD_WRITE = 2, exports.WASI_FILESTAT_SET_ATIM = 1 << 0, exports.WASI_FILESTAT_SET_ATIM_NOW = 1 << 1, exports.WASI_FILESTAT_SET_MTIM = 1 << 2, exports.WASI_FILESTAT_SET_MTIM_NOW = 1 << 3, exports.WASI_O_CREAT = 1 << 0, exports.WASI_O_DIRECTORY = 1 << 1, exports.WASI_O_EXCL = 1 << 2, exports.WASI_O_TRUNC = 1 << 3, exports.WASI_PREOPENTYPE_DIR = 0, exports.WASI_DIRCOOKIE_START = 0, exports.WASI_STDIN_FILENO = 0, exports.WASI_STDOUT_FILENO = 1, exports.WASI_STDERR_FILENO = 2, exports.WASI_WHENCE_SET = 0, exports.WASI_WHENCE_CUR = 1, exports.WASI_WHENCE_END = 2, exports.ERROR_MAP = { - E2BIG: exports.WASI_E2BIG, - EACCES: exports.WASI_EACCES, - EADDRINUSE: exports.WASI_EADDRINUSE, - EADDRNOTAVAIL: exports.WASI_EADDRNOTAVAIL, - EAFNOSUPPORT: exports.WASI_EAFNOSUPPORT, - EALREADY: exports.WASI_EALREADY, - EAGAIN: exports.WASI_EAGAIN, - EBADF: exports.WASI_EBADF, - EBADMSG: exports.WASI_EBADMSG, - EBUSY: exports.WASI_EBUSY, - ECANCELED: exports.WASI_ECANCELED, - ECHILD: exports.WASI_ECHILD, - ECONNABORTED: exports.WASI_ECONNABORTED, - ECONNREFUSED: exports.WASI_ECONNREFUSED, - ECONNRESET: exports.WASI_ECONNRESET, - EDEADLOCK: exports.WASI_EDEADLK, - EDESTADDRREQ: exports.WASI_EDESTADDRREQ, - EDOM: exports.WASI_EDOM, - EDQUOT: exports.WASI_EDQUOT, - EEXIST: exports.WASI_EEXIST, - EFAULT: exports.WASI_EFAULT, - EFBIG: exports.WASI_EFBIG, - EHOSTDOWN: exports.WASI_EHOSTUNREACH, - EHOSTUNREACH: exports.WASI_EHOSTUNREACH, - EIDRM: exports.WASI_EIDRM, - EILSEQ: exports.WASI_EILSEQ, - EINPROGRESS: exports.WASI_EINPROGRESS, - EINTR: exports.WASI_EINTR, - EINVAL: exports.WASI_EINVAL, - EIO: exports.WASI_EIO, - EISCONN: exports.WASI_EISCONN, - EISDIR: exports.WASI_EISDIR, - ELOOP: exports.WASI_ELOOP, - EMFILE: exports.WASI_EMFILE, - EMLINK: exports.WASI_EMLINK, - EMSGSIZE: exports.WASI_EMSGSIZE, - EMULTIHOP: exports.WASI_EMULTIHOP, - ENAMETOOLONG: exports.WASI_ENAMETOOLONG, - ENETDOWN: exports.WASI_ENETDOWN, - ENETRESET: exports.WASI_ENETRESET, - ENETUNREACH: exports.WASI_ENETUNREACH, - ENFILE: exports.WASI_ENFILE, - ENOBUFS: exports.WASI_ENOBUFS, - ENODEV: exports.WASI_ENODEV, - ENOENT: exports.WASI_ENOENT, - ENOEXEC: exports.WASI_ENOEXEC, - ENOLCK: exports.WASI_ENOLCK, - ENOLINK: exports.WASI_ENOLINK, - ENOMEM: exports.WASI_ENOMEM, - ENOMSG: exports.WASI_ENOMSG, - ENOPROTOOPT: exports.WASI_ENOPROTOOPT, - ENOSPC: exports.WASI_ENOSPC, - ENOSYS: exports.WASI_ENOSYS, - ENOTCONN: exports.WASI_ENOTCONN, - ENOTDIR: exports.WASI_ENOTDIR, - ENOTEMPTY: exports.WASI_ENOTEMPTY, - ENOTRECOVERABLE: exports.WASI_ENOTRECOVERABLE, - ENOTSOCK: exports.WASI_ENOTSOCK, - ENOTTY: exports.WASI_ENOTTY, - ENXIO: exports.WASI_ENXIO, - EOVERFLOW: exports.WASI_EOVERFLOW, - EOWNERDEAD: exports.WASI_EOWNERDEAD, - EPERM: exports.WASI_EPERM, - EPIPE: exports.WASI_EPIPE, - EPROTO: exports.WASI_EPROTO, - EPROTONOSUPPORT: exports.WASI_EPROTONOSUPPORT, - EPROTOTYPE: exports.WASI_EPROTOTYPE, - ERANGE: exports.WASI_ERANGE, - EROFS: exports.WASI_EROFS, - ESPIPE: exports.WASI_ESPIPE, - ESRCH: exports.WASI_ESRCH, - ESTALE: exports.WASI_ESTALE, - ETIMEDOUT: exports.WASI_ETIMEDOUT, - ETXTBSY: exports.WASI_ETXTBSY, - EXDEV: exports.WASI_EXDEV - }, exports.SIGNAL_MAP = { - [exports.WASI_SIGHUP]: "SIGHUP", - [exports.WASI_SIGINT]: "SIGINT", - [exports.WASI_SIGQUIT]: "SIGQUIT", - [exports.WASI_SIGILL]: "SIGILL", - [exports.WASI_SIGTRAP]: "SIGTRAP", - [exports.WASI_SIGABRT]: "SIGABRT", - [exports.WASI_SIGBUS]: "SIGBUS", - [exports.WASI_SIGFPE]: "SIGFPE", - [exports.WASI_SIGKILL]: "SIGKILL", - [exports.WASI_SIGUSR1]: "SIGUSR1", - [exports.WASI_SIGSEGV]: "SIGSEGV", - [exports.WASI_SIGUSR2]: "SIGUSR2", - [exports.WASI_SIGPIPE]: "SIGPIPE", - [exports.WASI_SIGALRM]: "SIGALRM", - [exports.WASI_SIGTERM]: "SIGTERM", - [exports.WASI_SIGCHLD]: "SIGCHLD", - [exports.WASI_SIGCONT]: "SIGCONT", - [exports.WASI_SIGSTOP]: "SIGSTOP", - [exports.WASI_SIGTSTP]: "SIGTSTP", - [exports.WASI_SIGTTIN]: "SIGTTIN", - [exports.WASI_SIGTTOU]: "SIGTTOU", - [exports.WASI_SIGURG]: "SIGURG", - [exports.WASI_SIGXCPU]: "SIGXCPU", - [exports.WASI_SIGXFSZ]: "SIGXFSZ", - [exports.WASI_SIGVTALRM]: "SIGVTALRM" - }; - } -}), require_wasi = __commonJS({ - "node_modules/wasi-js/dist/wasi.js"(exports) { - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - let fs; - Object.defineProperty(exports, "__esModule", { value: !0 }), exports.SOCKET_DEFAULT_RIGHTS = void 0; - var log = () => { - }, logOpen = () => { - }, SC_OPEN_MAX = 32768, types_1 = require_types(), constants_1 = require_constants(), 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, 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, STDERR_DEFAULT_RIGHTS = STDOUT_DEFAULT_RIGHTS; - exports.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), decimal = BigInt(Math.round((ms - msInt) * 1e6)); - return BigInt(msInt) * BigInt(1e6) + decimal; - }, nsToMs = (ns) => { - if (typeof ns === "number") - ns = Math.trunc(ns); - const nsInt = BigInt(ns); - return Number(nsInt / BigInt(1e6)); - }, wrap = (f) => (...args) => { - try { - return f(...args); - } 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; - } - }, 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), { filetype, rightsBase, rightsInheriting } = translateFileAttributes(wasi, fd, stats); - if (entry.filetype = filetype, !entry.rights) - entry.rights = { - base: rightsBase, - inheriting: rightsInheriting - }; - } - return entry; - }, translateFileAttributes = (wasi, fd, stats) => { - switch (!0) { - 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) - }; - } - }, warnedAboutSleep = !1, defaultConfig; - function getDefaults() { - if (defaultConfig) - return defaultConfig; - const defaultBindings = { - hrtime: () => process.hrtime.bigint(), - exit: (code) => { - process.exit(code); - }, - kill: (signal) => { - process.kill(process.pid, signal); - }, - randomFillSync: (array) => crypto.getRandomValues(array), - isTTY: (fd) => import.meta.require("node:tty").isatty(fd), - fs: Bun.fs(), - path: import.meta.require("node:path") - }; - return defaultConfig = { - args: [], - env: {}, - preopens: {}, - bindings: defaultBindings, - sleep: (ms) => { - Bun.sleepSync(ms); - } - }; - } - var WASI = class WASI2 { - constructor(wasiConfig = {}) { - const defaultConfig2 = getDefaults(); - this.lastStdin = 0, this.sleep = wasiConfig.sleep || defaultConfig2.sleep, this.getStdin = wasiConfig.getStdin, this.sendStdout = wasiConfig.sendStdout, this.sendStderr = wasiConfig.sendStderr; - let preopens = wasiConfig.preopens ?? defaultConfig2.preopens; - this.env = wasiConfig.env ?? defaultConfig2.env; - const args = wasiConfig.args ?? defaultConfig2.args; - this.memory = void 0, this.view = void 0, this.bindings = wasiConfig.bindings || defaultConfig2.bindings; - const bindings2 = this.bindings; - fs = bindings2.fs, this.FD_MAP = new Map([ - [ - constants_1.WASI_STDIN_FILENO, - { - real: 0, - filetype: constants_1.WASI_FILETYPE_CHARACTER_DEVICE, - 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, - 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, - rights: { - base: STDERR_DEFAULT_RIGHTS, - inheriting: BigInt(0) - }, - path: "/dev/stderr" - } - ] - ]); - const path = bindings2.path; - for (let [k, v] of Object.entries(preopens)) { - const real = fs.openSync(v, nodeFsConstants.O_RDONLY), newfd = this.getUnusedFileDescriptor(); - this.FD_MAP.set(newfd, { - real, - filetype: constants_1.WASI_FILETYPE_DIRECTORY, - rights: { - base: constants_1.RIGHTS_DIRECTORY_BASE, - inheriting: constants_1.RIGHTS_DIRECTORY_INHERITING - }, - fakePath: k, - path: v - }); - } - const getiovs = (iovs, iovsLen) => { - this.refreshMemory(); - const { view, memory } = this, { buffer } = memory, { byteLength } = buffer; - if (iovsLen === 1) { - const ptr = iovs, buf = view.getUint32(ptr, !0); - let bufLen = view.getUint32(ptr + 4, !0); - if (bufLen > byteLength - buf) - console.log({ - buf, - bufLen, - total_memory: byteLength - }), log("getiovs: warning -- truncating buffer to fit in memory"), bufLen = Math.min(bufLen, Math.max(0, byteLength - buf)); - try { - return [new Uint8Array(buffer, buf, bufLen)]; - } catch (err) { - throw console.warn("WASI.getiovs -- invalid buffer", err), new types_1.WASIError(constants_1.WASI_EINVAL); - } - } - const buffers = []; - buffers.length = iovsLen; - for (let i = 0, ptr = iovs;i < iovsLen; i++, ptr += 8) { - const buf = view.getUint32(ptr, !0); - let bufLen = view.getUint32(ptr + 4, !0); - if (bufLen > byteLength - buf) - console.log({ - buf, - bufLen, - total_memory: byteLength - }), log("getiovs: warning -- truncating buffer to fit in memory"), bufLen = Math.min(bufLen, Math.max(0, byteLength - buf)); - try { - buffers[i] = new Uint8Array(buffer, buf, bufLen); - } catch (err) { - throw console.warn("WASI.getiovs -- invalid buffer", err), new types_1.WASIError(constants_1.WASI_EINVAL); - } - } - return buffers; - }, CHECK_FD = (fd, rights) => { - const stats = stat(this, fd); - if (rights !== BigInt(0) && (stats.rights.base & rights) === BigInt(0)) - throw new types_1.WASIError(constants_1.WASI_EPERM); - return stats; - }, CPUTIME_START = Bun.nanoseconds(), timeOrigin = Math.trunc(performance.timeOrigin * 1e6), now = (clockId) => { - switch (clockId) { - case constants_1.WASI_CLOCK_MONOTONIC: - return Bun.nanoseconds(); - case constants_1.WASI_CLOCK_REALTIME: - return Bun.nanoseconds() + timeOrigin; - case constants_1.WASI_CLOCK_PROCESS_CPUTIME_ID: - case constants_1.WASI_CLOCK_THREAD_CPUTIME_ID: - return Bun.nanoseconds() - CPUTIME_START; - default: - return null; - } - }; - if (this.wasiImport = { - args_get: (argv, argvBuf) => { - this.refreshMemory(); - let coffset = argv, offset = argvBuf; - return args.forEach((a) => { - this.view.setUint32(coffset, offset, !0), coffset += 4, offset += Buffer.from(this.memory.buffer).write(`${a}\0`, offset); - }), constants_1.WASI_ESUCCESS; - }, - args_sizes_get: (argc, argvBufSize) => { - this.refreshMemory(), this.view.setUint32(argc, args.length, !0); - const size = args.reduce((acc, a) => acc + Buffer.byteLength(a) + 1, 0); - return this.view.setUint32(argvBufSize, size, !0), constants_1.WASI_ESUCCESS; - }, - environ_get: (environ, environBuf) => { - this.refreshMemory(); - let coffset = environ, offset = environBuf; - return Object.entries(this.env).forEach(([key, value]) => { - this.view.setUint32(coffset, offset, !0), coffset += 4, offset += Buffer.from(this.memory.buffer).write(`${key}=${value}\0`, offset); - }), constants_1.WASI_ESUCCESS; - }, - environ_sizes_get: (environCount, environBufSize) => { - this.refreshMemory(); - const envProcessed = Object.entries(this.env).map(([key, value]) => `${key}=${value}\0`), size = envProcessed.reduce((acc, e) => acc + Buffer.byteLength(e), 0); - return this.view.setUint32(environCount, envProcessed.length, !0), this.view.setUint32(environBufSize, size, !0), constants_1.WASI_ESUCCESS; - }, - clock_res_get: (clockId, resolution) => { - let res; - switch (clockId) { - case constants_1.WASI_CLOCK_MONOTONIC: - case constants_1.WASI_CLOCK_PROCESS_CPUTIME_ID: - case constants_1.WASI_CLOCK_THREAD_CPUTIME_ID: { - res = BigInt(1); - break; - } - case constants_1.WASI_CLOCK_REALTIME: { - res = BigInt(1000); - break; - } - } - if (!res) - throw Error("invalid clockId"); - return this.view.setBigUint64(resolution, res), constants_1.WASI_ESUCCESS; - }, - clock_time_get: (clockId, _precision, time) => { - this.refreshMemory(); - const n = now(clockId); - if (n === null) - return constants_1.WASI_EINVAL; - return this.view.setBigUint64(time, BigInt(n), !0), constants_1.WASI_ESUCCESS; - }, - fd_advise: wrap((fd, _offset, _len, _advice) => { - return CHECK_FD(fd, constants_1.WASI_RIGHT_FD_ADVISE), constants_1.WASI_ENOSYS; - }), - fd_allocate: wrap((fd, _offset, _len) => { - return CHECK_FD(fd, constants_1.WASI_RIGHT_FD_ALLOCATE), constants_1.WASI_ENOSYS; - }), - fd_close: wrap((fd) => { - const stats = CHECK_FD(fd, BigInt(0)); - return fs.closeSync(stats.real), this.FD_MAP.delete(fd), constants_1.WASI_ESUCCESS; - }), - fd_datasync: wrap((fd) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_DATASYNC); - return fs.fdatasyncSync(stats.real), constants_1.WASI_ESUCCESS; - }), - fd_fdstat_get: wrap((fd, bufPtr) => { - const stats = CHECK_FD(fd, BigInt(0)); - if (this.refreshMemory(), stats.filetype == null) - throw Error("stats.filetype must be set"); - return this.view.setUint8(bufPtr, stats.filetype), this.view.setUint16(bufPtr + 2, 0, !0), this.view.setUint16(bufPtr + 4, 0, !0), this.view.setBigUint64(bufPtr + 8, BigInt(stats.rights.base), !0), this.view.setBigUint64(bufPtr + 8 + 8, BigInt(stats.rights.inheriting), !0), constants_1.WASI_ESUCCESS; - }), - fd_fdstat_set_flags: wrap((fd, flags) => { - if (CHECK_FD(fd, constants_1.WASI_RIGHT_FD_FDSTAT_SET_FLAGS), this.wasiImport.sock_fcntlSetFlags(fd, flags) == 0) - return constants_1.WASI_ESUCCESS; - return constants_1.WASI_ENOSYS; - }), - fd_fdstat_set_rights: wrap((fd, fsRightsBase, fsRightsInheriting) => { - const stats = CHECK_FD(fd, BigInt(0)); - if ((stats.rights.base | fsRightsBase) > stats.rights.base) - return constants_1.WASI_EPERM; - if ((stats.rights.inheriting | fsRightsInheriting) > stats.rights.inheriting) - return constants_1.WASI_EPERM; - return stats.rights.base = fsRightsBase, stats.rights.inheriting = fsRightsInheriting, constants_1.WASI_ESUCCESS; - }), - fd_filestat_get: wrap((fd, bufPtr) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_FILESTAT_GET), rstats = this.fstatSync(stats.real); - if (this.refreshMemory(), this.view.setBigUint64(bufPtr, BigInt(rstats.dev), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, BigInt(rstats.ino), !0), bufPtr += 8, stats.filetype == null) - throw Error("stats.filetype must be set"); - return this.view.setUint8(bufPtr, stats.filetype), bufPtr += 8, this.view.setBigUint64(bufPtr, BigInt(rstats.nlink), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, BigInt(rstats.size), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, msToNs(rstats.atimeMs), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, msToNs(rstats.mtimeMs), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, msToNs(rstats.ctimeMs), !0), constants_1.WASI_ESUCCESS; - }), - fd_filestat_set_size: wrap((fd, stSize) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_FILESTAT_SET_SIZE); - return fs.ftruncateSync(stats.real, Number(stSize)), constants_1.WASI_ESUCCESS; - }), - fd_filestat_set_times: wrap((fd, stAtim, stMtim, fstflags) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_FILESTAT_SET_TIMES), rstats = this.fstatSync(stats.real); - let { atime: atim, mtime: mtim } = rstats; - const n = nsToMs(now(constants_1.WASI_CLOCK_REALTIME)), atimflags = constants_1.WASI_FILESTAT_SET_ATIM | constants_1.WASI_FILESTAT_SET_ATIM_NOW; - if ((fstflags & atimflags) === atimflags) - return constants_1.WASI_EINVAL; - const mtimflags = constants_1.WASI_FILESTAT_SET_MTIM | constants_1.WASI_FILESTAT_SET_MTIM_NOW; - if ((fstflags & mtimflags) === mtimflags) - return constants_1.WASI_EINVAL; - if ((fstflags & constants_1.WASI_FILESTAT_SET_ATIM) === constants_1.WASI_FILESTAT_SET_ATIM) - atim = nsToMs(stAtim); - else if ((fstflags & constants_1.WASI_FILESTAT_SET_ATIM_NOW) === constants_1.WASI_FILESTAT_SET_ATIM_NOW) - atim = n; - if ((fstflags & constants_1.WASI_FILESTAT_SET_MTIM) === constants_1.WASI_FILESTAT_SET_MTIM) - mtim = nsToMs(stMtim); - else if ((fstflags & constants_1.WASI_FILESTAT_SET_MTIM_NOW) === constants_1.WASI_FILESTAT_SET_MTIM_NOW) - mtim = n; - return fs.futimesSync(stats.real, new Date(atim), new Date(mtim)), constants_1.WASI_ESUCCESS; - }), - fd_prestat_get: wrap((fd, bufPtr) => { - const stats = CHECK_FD(fd, BigInt(0)); - return this.refreshMemory(), this.view.setUint8(bufPtr, constants_1.WASI_PREOPENTYPE_DIR), this.view.setUint32(bufPtr + 4, Buffer.byteLength(stats.fakePath ?? stats.path ?? ""), !0), constants_1.WASI_ESUCCESS; - }), - fd_prestat_dir_name: wrap((fd, pathPtr, pathLen) => { - const stats = CHECK_FD(fd, BigInt(0)); - return this.refreshMemory(), Buffer.from(this.memory.buffer).write(stats.fakePath ?? stats.path ?? "", pathPtr, pathLen, "utf8"), constants_1.WASI_ESUCCESS; - }), - fd_pwrite: wrap((fd, iovs, iovsLen, offset, nwritten) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_WRITE | constants_1.WASI_RIGHT_FD_SEEK); - let written = 0; - return getiovs(iovs, iovsLen).forEach((iov) => { - let w = 0; - while (w < iov.byteLength) - w += fs.writeSync(stats.real, iov, w, iov.byteLength - w, Number(offset) + written + w); - written += w; - }), this.view.setUint32(nwritten, written, !0), constants_1.WASI_ESUCCESS; - }), - fd_write: wrap((fd, iovs, iovsLen, nwritten) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_WRITE), IS_STDOUT = fd == constants_1.WASI_STDOUT_FILENO, IS_STDERR = fd == constants_1.WASI_STDERR_FILENO; - let written = 0; - return getiovs(iovs, iovsLen).forEach((iov) => { - if (iov.byteLength == 0) - return; - if (IS_STDOUT && this.sendStdout != null) - this.sendStdout(iov), written += iov.byteLength; - else if (IS_STDERR && this.sendStderr != null) - this.sendStderr(iov), written += iov.byteLength; - else { - let w = 0; - while (w < iov.byteLength) { - const i = fs.writeSync(stats.real, iov, w, iov.byteLength - w, stats.offset ? Number(stats.offset) : null); - if (stats.offset) - stats.offset += BigInt(i); - w += i; - } - written += w; - } - }), this.view.setUint32(nwritten, written, !0), constants_1.WASI_ESUCCESS; - }), - fd_pread: wrap((fd, iovs, iovsLen, offset, nread) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_READ | constants_1.WASI_RIGHT_FD_SEEK); - let read = 0; - outer: - for (let iov of getiovs(iovs, iovsLen)) { - let r = 0; - while (r < iov.byteLength) { - const length = iov.byteLength - r, rr = fs.readSync(stats.real, iov, r, iov.byteLength - r, Number(offset) + read + r); - if (r += rr, read += rr, rr === 0 || rr < length) - break outer; - } - read += r; - } - return this.view.setUint32(nread, read, !0), constants_1.WASI_ESUCCESS; - }), - fd_read: wrap((fd, iovs, iovsLen, nread) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_READ), IS_STDIN = fd == constants_1.WASI_STDIN_FILENO; - let read = 0; - outer: - for (let iov of getiovs(iovs, iovsLen)) { - let r = 0; - while (r < iov.byteLength) { - let length = iov.byteLength - r, position = IS_STDIN || stats.offset === void 0 ? null : Number(stats.offset), rr = 0; - if (IS_STDIN) - if (this.getStdin != null) { - if (this.stdinBuffer == null) - this.stdinBuffer = this.getStdin(); - if (this.stdinBuffer != null) { - if (rr = this.stdinBuffer.copy(iov), rr == this.stdinBuffer.length) - this.stdinBuffer = void 0; - else - this.stdinBuffer = this.stdinBuffer.slice(rr); - if (rr > 0) - this.lastStdin = (new Date()).valueOf(); - } - } else { - if (this.sleep == null && !warnedAboutSleep) - warnedAboutSleep = !0, console.log("(cpu waiting for stdin: please define a way to sleep!) "); - try { - rr = fs.readSync(stats.real, iov, r, length, position); - } catch (_err) { - } - if (rr == 0) - this.shortPause(); - else - this.lastStdin = (new Date()).valueOf(); - } - else - rr = fs.readSync(stats.real, iov, r, length, position); - if (stats.filetype == constants_1.WASI_FILETYPE_REGULAR_FILE) - stats.offset = (stats.offset ? stats.offset : BigInt(0)) + BigInt(rr); - if (r += rr, read += rr, rr === 0 || rr < length) - break outer; - } - } - return this.view.setUint32(nread, read, !0), constants_1.WASI_ESUCCESS; - }), - fd_readdir: wrap((fd, bufPtr, bufLen, cookie, bufusedPtr) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_READDIR); - this.refreshMemory(); - const entries = fs.readdirSync(stats.path, { withFileTypes: !0 }), startPtr = bufPtr; - for (let i = Number(cookie);i < entries.length; i += 1) { - const entry = entries[i]; - let nameLength = Buffer.byteLength(entry.name); - if (bufPtr - startPtr > bufLen) - break; - if (this.view.setBigUint64(bufPtr, BigInt(i + 1), !0), bufPtr += 8, bufPtr - startPtr > bufLen) - break; - const rstats = fs.lstatSync(path.resolve(stats.path, entry.name)); - if (this.view.setBigUint64(bufPtr, BigInt(rstats.ino), !0), bufPtr += 8, bufPtr - startPtr > bufLen) - break; - if (this.view.setUint32(bufPtr, nameLength, !0), bufPtr += 4, bufPtr - startPtr > bufLen) - break; - let filetype; - switch (!0) { - case rstats.isBlockDevice(): - filetype = constants_1.WASI_FILETYPE_BLOCK_DEVICE; - break; - case rstats.isCharacterDevice(): - filetype = constants_1.WASI_FILETYPE_CHARACTER_DEVICE; - break; - case rstats.isDirectory(): - filetype = constants_1.WASI_FILETYPE_DIRECTORY; - break; - case rstats.isFIFO(): - filetype = constants_1.WASI_FILETYPE_SOCKET_STREAM; - break; - case rstats.isFile(): - filetype = constants_1.WASI_FILETYPE_REGULAR_FILE; - break; - case rstats.isSocket(): - filetype = constants_1.WASI_FILETYPE_SOCKET_STREAM; - break; - case rstats.isSymbolicLink(): - filetype = constants_1.WASI_FILETYPE_SYMBOLIC_LINK; - break; - default: - filetype = constants_1.WASI_FILETYPE_UNKNOWN; - break; - } - if (this.view.setUint8(bufPtr, filetype), bufPtr += 1, bufPtr += 3, bufPtr + nameLength >= startPtr + bufLen) - break; - Buffer.from(this.memory.buffer).write(entry.name, bufPtr), bufPtr += nameLength; - } - const bufused = bufPtr - startPtr; - return this.view.setUint32(bufusedPtr, Math.min(bufused, bufLen), !0), constants_1.WASI_ESUCCESS; - }), - fd_renumber: wrap((from, to) => { - return CHECK_FD(from, BigInt(0)), CHECK_FD(to, BigInt(0)), fs.closeSync(this.FD_MAP.get(from).real), this.FD_MAP.set(from, this.FD_MAP.get(to)), this.FD_MAP.delete(to), constants_1.WASI_ESUCCESS; - }), - fd_seek: wrap((fd, offset, whence, newOffsetPtr) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_SEEK); - switch (this.refreshMemory(), whence) { - case constants_1.WASI_WHENCE_CUR: - stats.offset = (stats.offset ? stats.offset : BigInt(0)) + BigInt(offset); - break; - case constants_1.WASI_WHENCE_END: - const { size } = this.fstatSync(stats.real); - stats.offset = BigInt(size) + BigInt(offset); - break; - case constants_1.WASI_WHENCE_SET: - stats.offset = BigInt(offset); - break; - } - if (stats.offset == null) - throw Error("stats.offset must be defined"); - return this.view.setBigUint64(newOffsetPtr, stats.offset, !0), constants_1.WASI_ESUCCESS; - }), - fd_tell: wrap((fd, offsetPtr) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_TELL); - if (this.refreshMemory(), !stats.offset) - stats.offset = BigInt(0); - return this.view.setBigUint64(offsetPtr, stats.offset, !0), constants_1.WASI_ESUCCESS; - }), - fd_sync: wrap((fd) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_SYNC); - return fs.fsyncSync(stats.real), constants_1.WASI_ESUCCESS; - }), - path_create_directory: wrap((fd, pathPtr, pathLen) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_CREATE_DIRECTORY); - if (!stats.path) - return constants_1.WASI_EINVAL; - this.refreshMemory(); - const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString(); - return fs.mkdirSync(path.resolve(stats.path, p)), constants_1.WASI_ESUCCESS; - }), - path_filestat_get: wrap((fd, flags, pathPtr, pathLen, bufPtr) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_FILESTAT_GET); - if (!stats.path) - return constants_1.WASI_EINVAL; - this.refreshMemory(); - const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString(); - let rstats; - if (flags) - rstats = fs.statSync(path.resolve(stats.path, p)); - else - rstats = fs.lstatSync(path.resolve(stats.path, p)); - return this.view.setBigUint64(bufPtr, BigInt(rstats.dev), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, BigInt(rstats.ino), !0), bufPtr += 8, this.view.setUint8(bufPtr, translateFileAttributes(this, void 0, rstats).filetype), bufPtr += 8, this.view.setBigUint64(bufPtr, BigInt(rstats.nlink), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, BigInt(rstats.size), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, BigInt(rstats.atime.getTime() * 1e6), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, BigInt(rstats.mtime.getTime() * 1e6), !0), bufPtr += 8, this.view.setBigUint64(bufPtr, BigInt(rstats.ctime.getTime() * 1e6), !0), constants_1.WASI_ESUCCESS; - }), - path_filestat_set_times: wrap((fd, _dirflags, pathPtr, pathLen, stAtim, stMtim, fstflags) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_FILESTAT_SET_TIMES); - if (!stats.path) - return constants_1.WASI_EINVAL; - this.refreshMemory(); - const rstats = this.fstatSync(stats.real); - let { atime: atim, mtime: mtim } = rstats; - const n = nsToMs(now(constants_1.WASI_CLOCK_REALTIME)), atimflags = constants_1.WASI_FILESTAT_SET_ATIM | constants_1.WASI_FILESTAT_SET_ATIM_NOW; - if ((fstflags & atimflags) === atimflags) - return constants_1.WASI_EINVAL; - const mtimflags = constants_1.WASI_FILESTAT_SET_MTIM | constants_1.WASI_FILESTAT_SET_MTIM_NOW; - if ((fstflags & mtimflags) === mtimflags) - return constants_1.WASI_EINVAL; - if ((fstflags & constants_1.WASI_FILESTAT_SET_ATIM) === constants_1.WASI_FILESTAT_SET_ATIM) - atim = nsToMs(stAtim); - else if ((fstflags & constants_1.WASI_FILESTAT_SET_ATIM_NOW) === constants_1.WASI_FILESTAT_SET_ATIM_NOW) - atim = n; - if ((fstflags & constants_1.WASI_FILESTAT_SET_MTIM) === constants_1.WASI_FILESTAT_SET_MTIM) - mtim = nsToMs(stMtim); - else if ((fstflags & constants_1.WASI_FILESTAT_SET_MTIM_NOW) === constants_1.WASI_FILESTAT_SET_MTIM_NOW) - mtim = n; - const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString(); - return fs.utimesSync(path.resolve(stats.path, p), new Date(atim), new Date(mtim)), constants_1.WASI_ESUCCESS; - }), - path_link: wrap((oldFd, _oldFlags, oldPath, oldPathLen, newFd, newPath, newPathLen) => { - const ostats = CHECK_FD(oldFd, constants_1.WASI_RIGHT_PATH_LINK_SOURCE), nstats = CHECK_FD(newFd, constants_1.WASI_RIGHT_PATH_LINK_TARGET); - if (!ostats.path || !nstats.path) - return constants_1.WASI_EINVAL; - this.refreshMemory(); - const op = Buffer.from(this.memory.buffer, oldPath, oldPathLen).toString(), np = Buffer.from(this.memory.buffer, newPath, newPathLen).toString(); - return fs.linkSync(path.resolve(ostats.path, op), path.resolve(nstats.path, np)), constants_1.WASI_ESUCCESS; - }), - path_open: wrap((dirfd, _dirflags, pathPtr, pathLen, oflags, fsRightsBase, fsRightsInheriting, fsFlags, fdPtr) => { - try { - const stats = CHECK_FD(dirfd, constants_1.WASI_RIGHT_PATH_OPEN); - fsRightsBase = BigInt(fsRightsBase), fsRightsInheriting = BigInt(fsRightsInheriting); - const read = (fsRightsBase & (constants_1.WASI_RIGHT_FD_READ | constants_1.WASI_RIGHT_FD_READDIR)) !== BigInt(0), write = (fsRightsBase & (constants_1.WASI_RIGHT_FD_DATASYNC | constants_1.WASI_RIGHT_FD_WRITE | constants_1.WASI_RIGHT_FD_ALLOCATE | constants_1.WASI_RIGHT_FD_FILESTAT_SET_SIZE)) !== BigInt(0); - let noflags; - if (write && read) - noflags = nodeFsConstants.O_RDWR; - else if (read) - noflags = nodeFsConstants.O_RDONLY; - else if (write) - noflags = nodeFsConstants.O_WRONLY; - let neededBase = fsRightsBase | constants_1.WASI_RIGHT_PATH_OPEN, neededInheriting = fsRightsBase | fsRightsInheriting; - if ((oflags & constants_1.WASI_O_CREAT) !== 0) - noflags |= nodeFsConstants.O_CREAT, neededBase |= constants_1.WASI_RIGHT_PATH_CREATE_FILE; - if ((oflags & constants_1.WASI_O_DIRECTORY) !== 0) - noflags |= nodeFsConstants.O_DIRECTORY; - if ((oflags & constants_1.WASI_O_EXCL) !== 0) - noflags |= nodeFsConstants.O_EXCL; - if ((oflags & constants_1.WASI_O_TRUNC) !== 0) - noflags |= nodeFsConstants.O_TRUNC, neededBase |= constants_1.WASI_RIGHT_PATH_FILESTAT_SET_SIZE; - if ((fsFlags & constants_1.WASI_FDFLAG_APPEND) !== 0) - noflags |= nodeFsConstants.O_APPEND; - if ((fsFlags & constants_1.WASI_FDFLAG_DSYNC) !== 0) { - if (nodeFsConstants.O_DSYNC) - noflags |= nodeFsConstants.O_DSYNC; - else - noflags |= nodeFsConstants.O_SYNC; - neededInheriting |= constants_1.WASI_RIGHT_FD_DATASYNC; - } - if ((fsFlags & constants_1.WASI_FDFLAG_NONBLOCK) !== 0) - noflags |= nodeFsConstants.O_NONBLOCK; - if ((fsFlags & constants_1.WASI_FDFLAG_RSYNC) !== 0) { - if (nodeFsConstants.O_RSYNC) - noflags |= nodeFsConstants.O_RSYNC; - else - noflags |= nodeFsConstants.O_SYNC; - neededInheriting |= constants_1.WASI_RIGHT_FD_SYNC; - } - if ((fsFlags & constants_1.WASI_FDFLAG_SYNC) !== 0) - noflags |= nodeFsConstants.O_SYNC, neededInheriting |= constants_1.WASI_RIGHT_FD_SYNC; - if (write && (noflags & (nodeFsConstants.O_APPEND | nodeFsConstants.O_TRUNC)) === 0) - neededInheriting |= constants_1.WASI_RIGHT_FD_SEEK; - this.refreshMemory(); - const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString(); - if (p == "dev/tty") - return this.view.setUint32(fdPtr, constants_1.WASI_STDIN_FILENO, !0), constants_1.WASI_ESUCCESS; - if (logOpen("path_open", p), p.startsWith("proc/")) - throw new types_1.WASIError(constants_1.WASI_EBADF); - const fullUnresolved = path.resolve(p); - let full; - try { - full = fs.realpathSync(fullUnresolved); - } catch (e) { - if (e?.code === "ENOENT") - full = fullUnresolved; - else - throw e; - } - let isDirectory; - if (write) - try { - isDirectory = fs.statSync(full).isDirectory(); - } catch (_err) { - } - let realfd; - if (!write && isDirectory) - realfd = fs.openSync(full, nodeFsConstants.O_RDONLY); - else - realfd = fs.openSync(full, noflags); - const newfd = this.getUnusedFileDescriptor(); - this.FD_MAP.set(newfd, { - real: realfd, - filetype: void 0, - rights: { - base: neededBase, - inheriting: neededInheriting - }, - path: full - }), stat(this, newfd), this.view.setUint32(fdPtr, newfd, !0); - } catch (e) { - console.error(e); - } - return constants_1.WASI_ESUCCESS; - }), - path_readlink: wrap((fd, pathPtr, pathLen, buf, bufLen, bufused) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_READLINK); - if (!stats.path) - return constants_1.WASI_EINVAL; - this.refreshMemory(); - const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString(), full = path.resolve(stats.path, p), r = fs.readlinkSync(full), used = Buffer.from(this.memory.buffer).write(r, buf, bufLen); - return this.view.setUint32(bufused, used, !0), constants_1.WASI_ESUCCESS; - }), - path_remove_directory: wrap((fd, pathPtr, pathLen) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_REMOVE_DIRECTORY); - if (!stats.path) - return constants_1.WASI_EINVAL; - this.refreshMemory(); - const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString(); - return fs.rmdirSync(path.resolve(stats.path, p)), constants_1.WASI_ESUCCESS; - }), - path_rename: wrap((oldFd, oldPath, oldPathLen, newFd, newPath, newPathLen) => { - const ostats = CHECK_FD(oldFd, constants_1.WASI_RIGHT_PATH_RENAME_SOURCE), nstats = CHECK_FD(newFd, constants_1.WASI_RIGHT_PATH_RENAME_TARGET); - if (!ostats.path || !nstats.path) - return constants_1.WASI_EINVAL; - this.refreshMemory(); - const op = Buffer.from(this.memory.buffer, oldPath, oldPathLen).toString(), np = Buffer.from(this.memory.buffer, newPath, newPathLen).toString(); - return fs.renameSync(path.resolve(ostats.path, op), path.resolve(nstats.path, np)), constants_1.WASI_ESUCCESS; - }), - path_symlink: wrap((oldPath, oldPathLen, fd, newPath, newPathLen) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_SYMLINK); - if (!stats.path) - return constants_1.WASI_EINVAL; - this.refreshMemory(); - const op = Buffer.from(this.memory.buffer, oldPath, oldPathLen).toString(), np = Buffer.from(this.memory.buffer, newPath, newPathLen).toString(); - return fs.symlinkSync(op, path.resolve(stats.path, np)), constants_1.WASI_ESUCCESS; - }), - path_unlink_file: wrap((fd, pathPtr, pathLen) => { - const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_UNLINK_FILE); - if (!stats.path) - return constants_1.WASI_EINVAL; - this.refreshMemory(); - const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString(); - return fs.unlinkSync(path.resolve(stats.path, p)), constants_1.WASI_ESUCCESS; - }), - poll_oneoff: (sin, sout, nsubscriptions, neventsPtr) => { - let nevents = 0, name = "", waitTimeNs = BigInt(0), fd = -1, fd_type = "read", fd_timeout_ms = 0; - const startNs = BigInt(bindings2.hrtime()); - this.refreshMemory(); - let last_sin = sin; - for (let i = 0;i < nsubscriptions; i += 1) { - const userdata = this.view.getBigUint64(sin, !0); - sin += 8; - const type = this.view.getUint8(sin); - if (sin += 1, sin += 7, log.enabled) { - if (type == constants_1.WASI_EVENTTYPE_CLOCK) - name = "poll_oneoff (type=WASI_EVENTTYPE_CLOCK): "; - else if (type == constants_1.WASI_EVENTTYPE_FD_READ) - name = "poll_oneoff (type=WASI_EVENTTYPE_FD_READ): "; - else - name = "poll_oneoff (type=WASI_EVENTTYPE_FD_WRITE): "; - log(name); - } - switch (type) { - case constants_1.WASI_EVENTTYPE_CLOCK: { - const clockid = this.view.getUint32(sin, !0); - sin += 4, sin += 4; - const timeout = this.view.getBigUint64(sin, !0); - sin += 8, sin += 8; - const subclockflags = this.view.getUint16(sin, !0); - sin += 2, sin += 6; - const absolute = subclockflags === 1; - if (log.enabled) - log(name, { clockid, timeout, absolute }); - if (!absolute) - fd_timeout_ms = timeout / BigInt(1e6); - let e = constants_1.WASI_ESUCCESS; - const t = now(clockid); - if (t == null) - e = constants_1.WASI_EINVAL; - else { - const tNS = BigInt(t), waitNs = (absolute ? timeout : tNS + timeout) - tNS; - if (waitNs > waitTimeNs) - waitTimeNs = waitNs; - } - this.view.setBigUint64(sout, userdata, !0), sout += 8, this.view.setUint16(sout, e, !0), sout += 2, this.view.setUint8(sout, constants_1.WASI_EVENTTYPE_CLOCK), sout += 1, sout += 5, nevents += 1; - break; - } - case constants_1.WASI_EVENTTYPE_FD_READ: - case constants_1.WASI_EVENTTYPE_FD_WRITE: { - if (fd = this.view.getUint32(sin, !0), fd_type = type == constants_1.WASI_EVENTTYPE_FD_READ ? "read" : "write", sin += 4, log(name, "fd =", fd), sin += 28, this.view.setBigUint64(sout, userdata, !0), sout += 8, this.view.setUint16(sout, constants_1.WASI_ENOSYS, !0), sout += 2, this.view.setUint8(sout, type), sout += 1, sout += 5, nevents += 1, fd == constants_1.WASI_STDIN_FILENO && constants_1.WASI_EVENTTYPE_FD_READ == type) - this.shortPause(); - break; - } - default: - return constants_1.WASI_EINVAL; - } - if (sin - last_sin != 48) - console.warn("*** BUG in wasi-js in poll_oneoff ", { - i, - sin, - last_sin, - diff: sin - last_sin - }); - last_sin = sin; - } - if (this.view.setUint32(neventsPtr, nevents, !0), nevents == 2 && fd >= 0) { - const r = this.wasiImport.sock_pollSocket(fd, fd_type, fd_timeout_ms); - if (r != constants_1.WASI_ENOSYS) - return r; - } - if (waitTimeNs > 0) { - if (waitTimeNs -= Bun.nanoseconds() - timeOrigin, waitTimeNs >= 1e6) { - if (this.sleep == null && !warnedAboutSleep) - warnedAboutSleep = !0, console.log("(100% cpu burning waiting for stdin: please define a way to sleep!) "); - if (this.sleep != null) { - const ms = nsToMs(waitTimeNs); - this.sleep(ms); - } else { - const end = BigInt(bindings2.hrtime()) + waitTimeNs; - while (BigInt(bindings2.hrtime()) < end) - ; - } - } - } - return constants_1.WASI_ESUCCESS; - }, - proc_exit: (rval) => { - return bindings2.exit(rval), constants_1.WASI_ESUCCESS; - }, - proc_raise: (sig) => { - if (!(sig in constants_1.SIGNAL_MAP)) - return constants_1.WASI_EINVAL; - return bindings2.kill(constants_1.SIGNAL_MAP[sig]), constants_1.WASI_ESUCCESS; - }, - random_get: (bufPtr, bufLen) => { - return this.refreshMemory(), crypto.getRandomValues(this.memory.buffer, bufPtr, bufLen), bufLen; - }, - sched_yield() { - return constants_1.WASI_ESUCCESS; - }, - sock_recv() { - return constants_1.WASI_ENOSYS; - }, - sock_send() { - return constants_1.WASI_ENOSYS; - }, - sock_shutdown() { - return constants_1.WASI_ENOSYS; - }, - sock_fcntlSetFlags(_fd, _flags) { - return constants_1.WASI_ENOSYS; - }, - sock_pollSocket(_fd, _eventtype, _timeout_ms) { - return constants_1.WASI_ENOSYS; - } - }, log.enabled) - Object.keys(this.wasiImport).forEach((key) => { - const prevImport = this.wasiImport[key]; - this.wasiImport[key] = function(...args2) { - log(key, args2); - try { - let result = prevImport(...args2); - return log("result", result), result; - } catch (e) { - throw log("error: ", e), e; - } - }; - }); - } - getState() { - return { env: this.env, FD_MAP: this.FD_MAP, bindings }; - } - setState(state) { - this.env = state.env, this.FD_MAP = state.FD_MAP, bindings = state.bindings; - } - fstatSync(real_fd) { - if (real_fd <= 2) - try { - return fs.fstatSync(real_fd); - } catch (_) { - const now = new Date; - return { - dev: 0, - mode: 8592, - nlink: 1, - uid: 0, - gid: 0, - rdev: 0, - blksize: 65536, - ino: 0, - size: 0, - blocks: 0, - atimeMs: now.valueOf(), - mtimeMs: now.valueOf(), - ctimeMs: now.valueOf(), - birthtimeMs: 0, - atime: new Date, - mtime: new Date, - ctime: new Date, - birthtime: new Date(0) - }; - } - return fs.fstatSync(real_fd); - } - shortPause() { - if (this.sleep == null) - return; - if ((new Date()).valueOf() - this.lastStdin > 2000) - this.sleep(50); - } - getUnusedFileDescriptor(start = 3) { - let fd = start; - while (this.FD_MAP.has(fd)) - fd += 1; - if (fd > SC_OPEN_MAX) - throw Error("no available file descriptors"); - return fd; - } - refreshMemory() { - if (!this.view || this.view.buffer.byteLength === 0) - this.view = new DataView(this.memory.buffer); - } - setMemory(memory) { - this.memory = memory; - } - start(instance, memory) { - const exports2 = instance.exports; - if (exports2 === null || typeof exports2 !== "object") - throw new Error(`instance.exports must be an Object. Received ${exports2}.`); - if (memory == null) { - if (memory = exports2.memory, !(memory instanceof WebAssembly.Memory)) - throw new Error(`instance.exports.memory must be a WebAssembly.Memory. Recceived ${memory}.`); - } - if (this.setMemory(memory), exports2._start) - exports2._start(); - } - getImports(module2) { - let namespace = null; - const imports = WebAssembly.Module.imports(module2); - for (let imp of imports) { - if (imp.kind !== "function") - continue; - if (!imp.module.startsWith("wasi_")) - continue; - namespace = imp.module; - break; - } - switch (namespace) { - case "wasi_unstable": - return { - wasi_unstable: this.wasiImport - }; - case "wasi_snapshot_preview1": - return { - wasi_snapshot_preview1: this.wasiImport - }; - default: - throw new Error("No WASI namespace found. Only wasi_unstable and wasi_snapshot_preview1 are supported.\n\nList of imports:\n\n" + imports.map(({ name, kind, module }) => `${module}:${name} (${kind})`).join("\n") + "\n"); - } - } - initWasiFdInfo() { - if (this.env["WASI_FD_INFO"] != null) { - const fdInfo = JSON.parse(this.env["WASI_FD_INFO"]); - for (let wasi_fd in fdInfo) { - console.log(wasi_fd); - const fd = parseInt(wasi_fd); - if (this.FD_MAP.has(fd)) - continue; - const real = fdInfo[wasi_fd]; - try { - this.fstatSync(real); - } catch (_err) { - console.log("discarding ", { wasi_fd, real }); - continue; - } - const file = { - real, - filetype: constants_1.WASI_FILETYPE_SOCKET_STREAM, - rights: { - base: STDIN_DEFAULT_RIGHTS, - inheriting: BigInt(0) - } - }; - this.FD_MAP.set(fd, file); - } - console.log("after initWasiFdInfo: ", this.FD_MAP), console.log("fdInfo = ", fdInfo); - } else - console.log("no WASI_FD_INFO"); - } - }; - exports.default = WASI; - } -}), WASIExport = require_wasi(), WASI = WASIExport.default; -WASIExport[Symbol.for("CommonJS")] = 0; -var wasi_default = WASIExport; -export { - wasi_default as default, - WASIExport as WASI -}; - -//# debugId=AEC59F236BFA157464756e2164756e21 |