@ai-ecoverse/slicc-kernel 1.102.6 → 1.103.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/index.js.map +2 -2
- package/dist/kernel-worker.js +118 -29
- package/dist/kernel-worker.js.map +4 -4
- package/dist/meta.js.map +2 -2
- package/dist/node-process-worker.js +29 -44
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +123 -34
- package/dist/node.js.map +4 -4
- package/dist/process-worker.js +44 -59
- package/dist/process-worker.js.map +3 -3
- package/dist/types/body-idle.d.ts +3 -0
- package/dist/types/bytes.d.ts +1 -0
- package/dist/types/cdp/facade.d.ts +27 -0
- package/dist/types/cdp/hosts.d.ts +14 -0
- package/dist/types/cdp/port.d.ts +24 -0
- package/dist/types/cdp/types.d.ts +12 -0
- package/dist/types/cdp/websocket.d.ts +61 -0
- package/dist/types/client/attach.d.ts +132 -0
- package/dist/types/client/dial-stream.d.ts +23 -0
- package/dist/types/client/loopback-fetch.d.ts +5 -0
- package/dist/types/client/protocol.d.ts +153 -0
- package/dist/types/client/serve-client.d.ts +18 -0
- package/dist/types/clipboard-relay.d.ts +25 -0
- package/dist/types/commands.d.ts +38 -0
- package/dist/types/cron/clock.d.ts +13 -0
- package/dist/types/driver.d.ts +3 -0
- package/dist/types/facade/hosts.d.ts +12 -0
- package/dist/types/facade/port.d.ts +16 -0
- package/dist/types/facade/types.d.ts +23 -0
- package/dist/types/fs/access.d.ts +29 -0
- package/dist/types/fs/attest.d.ts +41 -0
- package/dist/types/fs/changes.d.ts +19 -0
- package/dist/types/fs/commands.d.ts +4 -0
- package/dist/types/fs/dac.d.ts +64 -0
- package/dist/types/fs/dev-removal.d.ts +9 -0
- package/dist/types/fs/fresh-modules.d.ts +9 -0
- package/dist/types/fs/integrity.d.ts +53 -0
- package/dist/types/fs/meta.d.ts +86 -0
- package/dist/types/fs/opfs.d.ts +141 -0
- package/dist/types/fs/owners.d.ts +17 -0
- package/dist/types/fs/pages.d.ts +41 -0
- package/dist/types/fs/path-map.d.ts +16 -0
- package/dist/types/fs/physical-path.d.ts +14 -0
- package/dist/types/fs/protect.d.ts +27 -0
- package/dist/types/fs/ranged.d.ts +73 -0
- package/dist/types/fs/remote.d.ts +45 -0
- package/dist/types/fs/types.d.ts +117 -0
- package/dist/types/fs/unlinked.d.ts +75 -0
- package/dist/types/fs/view.d.ts +1 -0
- package/dist/types/fs/walk.d.ts +12 -0
- package/dist/types/fs/watch.d.ts +23 -0
- package/dist/types/index.d.ts +159 -0
- package/dist/types/integrity-relay.d.ts +18 -0
- package/dist/types/kernel/children.d.ts +90 -0
- package/dist/types/kernel/clipboard.d.ts +49 -0
- package/dist/types/kernel/cpu-clock.d.ts +56 -0
- package/dist/types/kernel/cred.d.ts +17 -0
- package/dist/types/kernel/dgram.d.ts +56 -0
- package/dist/types/kernel/dial.d.ts +20 -0
- package/dist/types/kernel/epoll.d.ts +67 -0
- package/dist/types/kernel/eventfd.d.ts +19 -0
- package/dist/types/kernel/exec-ticket.d.ts +25 -0
- package/dist/types/kernel/fd-table.d.ts +107 -0
- package/dist/types/kernel/host-ops.d.ts +98 -0
- package/dist/types/kernel/host.d.ts +116 -0
- package/dist/types/kernel/jobs.d.ts +50 -0
- package/dist/types/kernel/locks.d.ts +40 -0
- package/dist/types/kernel/net/datagram-wire.d.ts +8 -0
- package/dist/types/kernel/net/http-syscalls.d.ts +58 -0
- package/dist/types/kernel/net/http1.d.ts +48 -0
- package/dist/types/kernel/net/loopback-names.d.ts +14 -0
- package/dist/types/kernel/net/loopback-transport.d.ts +13 -0
- package/dist/types/kernel/net/network.d.ts +29 -0
- package/dist/types/kernel/net/proxy-service.d.ts +70 -0
- package/dist/types/kernel/net/realm-ca.d.ts +28 -0
- package/dist/types/kernel/net/redirect-hops.d.ts +5 -0
- package/dist/types/kernel/net/remote-transport.d.ts +98 -0
- package/dist/types/kernel/net/resolver.d.ts +29 -0
- package/dist/types/kernel/net/routes.d.ts +15 -0
- package/dist/types/kernel/net/tls-engine.d.ts +46 -0
- package/dist/types/kernel/net/tls-tunnel.d.ts +35 -0
- package/dist/types/kernel/net/transport.d.ts +64 -0
- package/dist/types/kernel/net/uplink-socket.d.ts +11 -0
- package/dist/types/kernel/net/uplink.d.ts +163 -0
- package/dist/types/kernel/net/ws-queue.d.ts +21 -0
- package/dist/types/kernel/net/ws-syscalls.d.ts +45 -0
- package/dist/types/kernel/net/x509.d.ts +34 -0
- package/dist/types/kernel/pipe.d.ts +29 -0
- package/dist/types/kernel/proc-info.d.ts +44 -0
- package/dist/types/kernel/process.d.ts +525 -0
- package/dist/types/kernel/protocol.d.ts +126 -0
- package/dist/types/kernel/pty.d.ts +84 -0
- package/dist/types/kernel/run-child.d.ts +39 -0
- package/dist/types/kernel/scrub-file.d.ts +13 -0
- package/dist/types/kernel/sealed.d.ts +74 -0
- package/dist/types/kernel/select.d.ts +7 -0
- package/dist/types/kernel/sem.d.ts +72 -0
- package/dist/types/kernel/settling.d.ts +16 -0
- package/dist/types/kernel/signals.d.ts +44 -0
- package/dist/types/kernel/socket-nodes.d.ts +20 -0
- package/dist/types/kernel/socket-syscalls.d.ts +76 -0
- package/dist/types/kernel/socket.d.ts +131 -0
- package/dist/types/kernel/timer.d.ts +4 -0
- package/dist/types/kernel/tty.d.ts +53 -0
- package/dist/types/kernel/vfs-file.d.ts +149 -0
- package/dist/types/launcher.d.ts +359 -0
- package/dist/types/local-proxy-transport.d.ts +39 -0
- package/dist/types/meta.d.ts +11 -0
- package/dist/types/mount/chunked.d.ts +9 -0
- package/dist/types/mount/connection.d.ts +35 -0
- package/dist/types/mount/driver.d.ts +50 -0
- package/dist/types/mount/fsa.d.ts +26 -0
- package/dist/types/mount/fstab.d.ts +17 -0
- package/dist/types/mount/host.d.ts +24 -0
- package/dist/types/mount/hostfs.d.ts +129 -0
- package/dist/types/mount/media.d.ts +8 -0
- package/dist/types/mount/medium.d.ts +12 -0
- package/dist/types/mount/mount-fs.d.ts +136 -0
- package/dist/types/mount/protocol.d.ts +140 -0
- package/dist/types/mount/syscall.d.ts +27 -0
- package/dist/types/mount/tmpfs.d.ts +2 -0
- package/dist/types/node/loopback.d.ts +11 -0
- package/dist/types/node/memory-root.d.ts +2 -0
- package/dist/types/node/ws-diagnose.d.ts +4 -0
- package/dist/types/node.d.ts +85 -0
- package/dist/types/process/fd-metadata.d.ts +4 -0
- package/dist/types/process/js/async-sab.d.ts +15 -0
- package/dist/types/process/js/js-children.d.ts +63 -0
- package/dist/types/process/js/js-context.d.ts +133 -0
- package/dist/types/process/js/js-dev.d.ts +50 -0
- package/dist/types/process/js/js-exit.d.ts +15 -0
- package/dist/types/process/js/js-fetch.d.ts +2 -0
- package/dist/types/process/js/js-io.d.ts +81 -0
- package/dist/types/process/js/js-kernel.d.ts +61 -0
- package/dist/types/process/js/js-net.d.ts +42 -0
- package/dist/types/process/js/js-proc.d.ts +31 -0
- package/dist/types/process/js/js-run.d.ts +35 -0
- package/dist/types/process/js/js-sync.d.ts +86 -0
- package/dist/types/process/js/js-tty.d.ts +30 -0
- package/dist/types/process/js/js-websocket.d.ts +21 -0
- package/dist/types/process/kernel-streams.d.ts +196 -0
- package/dist/types/process/process-fds.d.ts +95 -0
- package/dist/types/process/process-locks.d.ts +29 -0
- package/dist/types/process/process-pty.d.ts +20 -0
- package/dist/types/process/process-signals.d.ts +33 -0
- package/dist/types/process/procfs.d.ts +41 -0
- package/dist/types/process/wasi/dylink.d.ts +9 -0
- package/dist/types/process/wasi/slicc-lock.d.ts +26 -0
- package/dist/types/process/wasi/slicc-sem.d.ts +3 -0
- package/dist/types/process/wasi/wasi-abi.d.ts +156 -0
- package/dist/types/process/wasi/wasi-fds.d.ts +130 -0
- package/dist/types/process/wasi/wasi-files.d.ts +99 -0
- package/dist/types/process/wasi/wasi-host.d.ts +104 -0
- package/dist/types/process/wasi/wasi-memory.d.ts +16 -0
- package/dist/types/process/wasi/wasi-module.d.ts +13 -0
- package/dist/types/process/wasi/wasi-poll.d.ts +13 -0
- package/dist/types/process/wasi/wasi-procfs.d.ts +36 -0
- package/dist/types/process/wasi/wasi-sigmask.d.ts +19 -0
- package/dist/types/process/wasi/wasi-signals.d.ts +43 -0
- package/dist/types/process/wasi/wasi-termios.d.ts +10 -0
- package/dist/types/process/wasi/wasix-fork.d.ts +63 -0
- package/dist/types/process/wasi/wasix-linker.d.ts +108 -0
- package/dist/types/process/wasi/wasix-sockets.d.ts +9 -0
- package/dist/types/process/wasi/wasix-trampoline.d.ts +18 -0
- package/dist/types/process/wasi/wasm-functypes.d.ts +25 -0
- package/dist/types/process/wasi-errno.d.ts +1 -0
- package/dist/types/realm/emscripten-vfs-hook.d.ts +19 -0
- package/dist/types/realm/live-vfs-fs.d.ts +186 -0
- package/dist/types/realm/sync-fs-dispatch.d.ts +27 -0
- package/dist/types/realm/sync-fs-token-registry.d.ts +36 -0
- package/dist/types/realm/sync-fs-wire.d.ts +119 -0
- package/dist/types/realm/sync-sab-bridge.d.ts +21 -0
- package/dist/types/realm/sync-sab-responder.d.ts +16 -0
- package/dist/types/realm/sync-sab-wire.d.ts +64 -0
- package/dist/types/sealed-relay.d.ts +26 -0
- package/dist/types/serve.d.ts +190 -0
- package/dist/types/sudo-command.d.ts +4 -0
- package/dist/types/sudo.d.ts +105 -0
- package/dist/types/testing.d.ts +46 -0
- package/dist/types/transport.d.ts +25 -0
- package/dist/types/users.d.ts +86 -0
- package/dist/types/version.d.ts +3 -0
- package/dist/types/websocket-transport.d.ts +12 -0
- package/package.json +24 -8
package/dist/process-worker.js
CHANGED
|
@@ -941,6 +941,7 @@ function parseSyncFsStat(json2) {
|
|
|
941
941
|
isFile: s.isFile,
|
|
942
942
|
isDirectory: s.isDirectory,
|
|
943
943
|
isSymbolicLink: s.isSymbolicLink,
|
|
944
|
+
...s.isSocket === true ? { isSocket: true } : {},
|
|
944
945
|
size: s.size,
|
|
945
946
|
...typeof s.mode === "number" ? { mode: s.mode } : {},
|
|
946
947
|
...typeof s.mtimeMs === "number" ? { mtimeMs: s.mtimeMs } : {},
|
|
@@ -1316,7 +1317,7 @@ function exactIn(node) {
|
|
|
1316
1317
|
return node?.mount.opts.bridge.owners === true;
|
|
1317
1318
|
}
|
|
1318
1319
|
function modeFromStat(st, exact = false) {
|
|
1319
|
-
const type = st.isSymbolicLink ? S_IFLNK : st.isDirectory ? S_IFDIR : S_IFREG;
|
|
1320
|
+
const type = st.isSymbolicLink ? S_IFLNK : st.isDirectory ? S_IFDIR : st.isSocket ? S_IFSOCK : S_IFREG;
|
|
1320
1321
|
const fallback = st.isDirectory || st.isSymbolicLink ? 511 : 438;
|
|
1321
1322
|
const perm = (st.mode ?? fallback) & PERM_MASK;
|
|
1322
1323
|
return type | (exact ? perm : perm || fallback);
|
|
@@ -1862,6 +1863,10 @@ function createStreamOps(h) {
|
|
|
1862
1863
|
return want;
|
|
1863
1864
|
};
|
|
1864
1865
|
const directory = (stream) => {
|
|
1866
|
+
if ((stream.node.mode & S_IFMT) === S_IFSOCK && !(stream.flags & O_PATH)) {
|
|
1867
|
+
if (stream.fd !== void 0) Fs.closeStream?.(stream.fd);
|
|
1868
|
+
throw new Fs.ErrnoError(wasiErrno("ENXIO"));
|
|
1869
|
+
}
|
|
1865
1870
|
const bridge = bridgeOf(stream.node);
|
|
1866
1871
|
if (!bridge.owners || !Fs.isDir(stream.node.mode) || stream.flags & O_PATH) return;
|
|
1867
1872
|
try {
|
|
@@ -2339,7 +2344,7 @@ function readingLinks(Fs) {
|
|
|
2339
2344
|
}
|
|
2340
2345
|
};
|
|
2341
2346
|
}
|
|
2342
|
-
var S_IFDIR, S_IFREG, S_IFLNK, PERM_MASK, DEFAULT_DIR_PERM, UMASK, SEEK_CUR, SEEK_END, EARLY_WHOLE_FILE, O_APPEND, O_ACCMODE, O_TRUNC, O_PATH, stale, opening;
|
|
2347
|
+
var S_IFDIR, S_IFREG, S_IFLNK, S_IFSOCK, S_IFMT, PERM_MASK, DEFAULT_DIR_PERM, UMASK, SEEK_CUR, SEEK_END, EARLY_WHOLE_FILE, O_APPEND, O_ACCMODE, O_TRUNC, O_PATH, stale, opening;
|
|
2343
2348
|
var init_live_vfs_fs = __esm({
|
|
2344
2349
|
"src/realm/live-vfs-fs.ts"() {
|
|
2345
2350
|
"use strict";
|
|
@@ -2352,6 +2357,8 @@ var init_live_vfs_fs = __esm({
|
|
|
2352
2357
|
S_IFDIR = 16384;
|
|
2353
2358
|
S_IFREG = 32768;
|
|
2354
2359
|
S_IFLNK = 40960;
|
|
2360
|
+
S_IFSOCK = 49152;
|
|
2361
|
+
S_IFMT = 61440;
|
|
2355
2362
|
PERM_MASK = 4095;
|
|
2356
2363
|
DEFAULT_DIR_PERM = 493;
|
|
2357
2364
|
UMASK = 18;
|
|
@@ -2484,7 +2491,7 @@ var KERNEL_VERSION, OS_RELEASE;
|
|
|
2484
2491
|
var init_version = __esm({
|
|
2485
2492
|
"src/version.ts"() {
|
|
2486
2493
|
"use strict";
|
|
2487
|
-
KERNEL_VERSION = true ? "1.
|
|
2494
|
+
KERNEL_VERSION = true ? "1.103.1" : "0.0.0-dev";
|
|
2488
2495
|
OS_RELEASE = "6.0.0-slicc";
|
|
2489
2496
|
}
|
|
2490
2497
|
});
|
|
@@ -4051,13 +4058,13 @@ var init_kernel_streams = __esm({
|
|
|
4051
4058
|
const name2 = path.slice(path.lastIndexOf("/") + 1);
|
|
4052
4059
|
if (!TTY_NAME.test(name2)) return void 0;
|
|
4053
4060
|
const { lookupPath, cwd } = this.Fs;
|
|
4054
|
-
const
|
|
4055
|
-
const dir =
|
|
4061
|
+
const absolute2 = path.startsWith("/") ? path : `${cwd?.call(this.Fs) ?? "/"}/${path}`;
|
|
4062
|
+
const dir = absolute2.slice(0, absolute2.lastIndexOf("/")) || "/";
|
|
4056
4063
|
try {
|
|
4057
4064
|
const real = lookupPath?.call(this.Fs, dir, { follow: true }).path ?? dir;
|
|
4058
4065
|
return `${real === "/" ? "" : real}/${name2}`;
|
|
4059
4066
|
} catch {
|
|
4060
|
-
return
|
|
4067
|
+
return absolute2;
|
|
4061
4068
|
}
|
|
4062
4069
|
}
|
|
4063
4070
|
terminalExists(path) {
|
|
@@ -4497,7 +4504,7 @@ function createProcessKernel(deps) {
|
|
|
4497
4504
|
if (!stream) return { none: true };
|
|
4498
4505
|
promote?.(stream);
|
|
4499
4506
|
if (stream.sliccKernelFd !== void 0) return { fd: stream.sliccKernelFd };
|
|
4500
|
-
if (((stream.node?.mode ?? 0) &
|
|
4507
|
+
if (((stream.node?.mode ?? 0) & S_IFMT2) === S_IFDIR2 && stream.path) return { dir: stream.path };
|
|
4501
4508
|
const device2 = deviceOfStream(stream);
|
|
4502
4509
|
if (device2) return device2;
|
|
4503
4510
|
return n === 0 ? { input: drain(Fs, stream) } : { capture: true };
|
|
@@ -4644,14 +4651,14 @@ function createProcessKernel(deps) {
|
|
|
4644
4651
|
}
|
|
4645
4652
|
};
|
|
4646
4653
|
}
|
|
4647
|
-
var
|
|
4654
|
+
var S_IFMT2, S_IFDIR2, POLLIN2, POLLOUT2, POLLERR2, POLLHUP2, POLLNVAL, SELECT_SLICE_MS, WUNTRACED, WCONTINUED;
|
|
4648
4655
|
var init_process_children = __esm({
|
|
4649
4656
|
"src/process/process-children.ts"() {
|
|
4650
4657
|
"use strict";
|
|
4651
4658
|
init_signals();
|
|
4652
4659
|
init_process_fork();
|
|
4653
4660
|
init_wasi_errno();
|
|
4654
|
-
|
|
4661
|
+
S_IFMT2 = 61440;
|
|
4655
4662
|
S_IFDIR2 = 16384;
|
|
4656
4663
|
POLLIN2 = 1;
|
|
4657
4664
|
POLLOUT2 = 4;
|
|
@@ -4818,22 +4825,6 @@ function resolved(Fs, addr) {
|
|
|
4818
4825
|
const path = addr.path.startsWith("/") ? addr.path : `${Fs.cwd()}/${addr.path}`;
|
|
4819
4826
|
return { family: "unix", path: normalizePath(path) };
|
|
4820
4827
|
}
|
|
4821
|
-
function socketNode(Fs, addr) {
|
|
4822
|
-
if (addr.family !== "unix" || !addr.path || addr.path.startsWith("\0")) return void 0;
|
|
4823
|
-
const fs = Fs;
|
|
4824
|
-
let stream;
|
|
4825
|
-
try {
|
|
4826
|
-
stream = Fs.open(addr.path, O_WRONLY3 | O_CREAT4 | O_EXCL3, 493);
|
|
4827
|
-
} catch (e) {
|
|
4828
|
-
if (e?.errno === wasiErrno("EEXIST")) {
|
|
4829
|
-
throw new SyscallError("EADDRINUSE");
|
|
4830
|
-
}
|
|
4831
|
-
throw e;
|
|
4832
|
-
}
|
|
4833
|
-
if (Fs.close) Fs.close(stream);
|
|
4834
|
-
else Fs.closeStream(stream.fd);
|
|
4835
|
-
return { remove: () => fs.unlink?.(addr.path) };
|
|
4836
|
-
}
|
|
4837
4828
|
function createSocketKernel(deps) {
|
|
4838
4829
|
const { transport, Fs, sys, streams } = deps;
|
|
4839
4830
|
const call2 = (req) => {
|
|
@@ -4900,16 +4891,7 @@ function createSocketKernel(deps) {
|
|
|
4900
4891
|
throw e;
|
|
4901
4892
|
}
|
|
4902
4893
|
}),
|
|
4903
|
-
bind: (fd, given) => guard(() => {
|
|
4904
|
-
const addr = resolved(Fs, given);
|
|
4905
|
-
const node = socketNode(Fs, addr);
|
|
4906
|
-
try {
|
|
4907
|
-
return done({ op: "sock-bind", fd: kfd(fd), addr });
|
|
4908
|
-
} catch (e) {
|
|
4909
|
-
node?.remove();
|
|
4910
|
-
throw e;
|
|
4911
|
-
}
|
|
4912
|
-
}),
|
|
4894
|
+
bind: (fd, given) => guard(() => done({ op: "sock-bind", fd: kfd(fd), addr: resolved(Fs, given) })),
|
|
4913
4895
|
listen: (fd, backlog) => guard(() => done({ op: "sock-listen", fd: kfd(fd), backlog })),
|
|
4914
4896
|
accept: (fd, nonblock, cloexec) => guard(() => {
|
|
4915
4897
|
const listener = socketAt(fd);
|
|
@@ -4955,7 +4937,7 @@ function createSocketKernel(deps) {
|
|
|
4955
4937
|
})
|
|
4956
4938
|
};
|
|
4957
4939
|
}
|
|
4958
|
-
var O_RDWR2, KILLED_BY_SIGPIPE2
|
|
4940
|
+
var O_RDWR2, KILLED_BY_SIGPIPE2;
|
|
4959
4941
|
var init_process_sockets = __esm({
|
|
4960
4942
|
"src/process/process-sockets.ts"() {
|
|
4961
4943
|
"use strict";
|
|
@@ -4965,9 +4947,6 @@ var init_process_sockets = __esm({
|
|
|
4965
4947
|
init_wasi_errno();
|
|
4966
4948
|
O_RDWR2 = 2;
|
|
4967
4949
|
KILLED_BY_SIGPIPE2 = 128 + 13;
|
|
4968
|
-
O_WRONLY3 = 1;
|
|
4969
|
-
O_CREAT4 = 64;
|
|
4970
|
-
O_EXCL3 = 128;
|
|
4971
4950
|
}
|
|
4972
4951
|
});
|
|
4973
4952
|
|
|
@@ -5956,7 +5935,7 @@ function runMain(running, init) {
|
|
|
5956
5935
|
return status2;
|
|
5957
5936
|
}
|
|
5958
5937
|
}
|
|
5959
|
-
var FS_OPS, O_RDONLY2,
|
|
5938
|
+
var FS_OPS, O_RDONLY2, O_WRONLY3, O_RDWR3, O_ACCMODE5, O_DIRECTORY2, accessMode, PLACED, GLUE_TRAILER, evaluateGlue, EVAL_BLOCKED;
|
|
5960
5939
|
var init_process_runtime = __esm({
|
|
5961
5940
|
"src/process/process-runtime.ts"() {
|
|
5962
5941
|
"use strict";
|
|
@@ -5980,11 +5959,11 @@ var init_process_runtime = __esm({
|
|
|
5980
5959
|
init_kernel_streams();
|
|
5981
5960
|
FS_OPS = new Set(SYNC_FS_OPS);
|
|
5982
5961
|
O_RDONLY2 = 0;
|
|
5983
|
-
|
|
5962
|
+
O_WRONLY3 = 1;
|
|
5984
5963
|
O_RDWR3 = 2;
|
|
5985
5964
|
O_ACCMODE5 = 3;
|
|
5986
5965
|
O_DIRECTORY2 = 65536;
|
|
5987
|
-
accessMode = (access) => access === "read" ? O_RDONLY2 : access === "write" ?
|
|
5966
|
+
accessMode = (access) => access === "read" ? O_RDONLY2 : access === "write" ? O_WRONLY3 : O_RDWR3;
|
|
5988
5967
|
PLACED = /* @__PURE__ */ new Set(["stream", "file", "socket", "clipboard", "sealed"]);
|
|
5989
5968
|
GLUE_TRAILER = [
|
|
5990
5969
|
"if (typeof ENV !== 'undefined') Object.assign(ENV, Module.sliccEnv);",
|
|
@@ -6944,7 +6923,7 @@ function promoteRequest(fd, f, handed) {
|
|
|
6944
6923
|
op: "fd-promote",
|
|
6945
6924
|
fd,
|
|
6946
6925
|
path: f.path,
|
|
6947
|
-
flags: (f.writable ? f.readable ? O_RDWR4 :
|
|
6926
|
+
flags: (f.writable ? f.readable ? O_RDWR4 : O_WRONLY4 : 0) | (f.append ? O_APPEND2 : 0),
|
|
6948
6927
|
position: f.offset,
|
|
6949
6928
|
...joins ? {} : { contents: f.buffer.contents() },
|
|
6950
6929
|
...orphan ? { orphan: true } : {},
|
|
@@ -6953,7 +6932,7 @@ function promoteRequest(fd, f, handed) {
|
|
|
6953
6932
|
...f.buffer.handle !== void 0 ? { handle: f.buffer.handle } : {}
|
|
6954
6933
|
};
|
|
6955
6934
|
}
|
|
6956
|
-
var SYNTHETIC_DIRS2, O_NONBLOCK2,
|
|
6935
|
+
var SYNTHETIC_DIRS2, O_NONBLOCK2, O_WRONLY4, O_RDWR4, O_APPEND2, SEALED_PATH2, CLIPBOARD_PATH2, WasiFds, GEN2;
|
|
6957
6936
|
var init_wasi_fds = __esm({
|
|
6958
6937
|
"src/process/wasi/wasi-fds.ts"() {
|
|
6959
6938
|
"use strict";
|
|
@@ -6964,7 +6943,7 @@ var init_wasi_fds = __esm({
|
|
|
6964
6943
|
init_wasi_files();
|
|
6965
6944
|
SYNTHETIC_DIRS2 = ["usr", "bin"];
|
|
6966
6945
|
O_NONBLOCK2 = 2048;
|
|
6967
|
-
|
|
6946
|
+
O_WRONLY4 = 1;
|
|
6968
6947
|
O_RDWR4 = 2;
|
|
6969
6948
|
O_APPEND2 = 1024;
|
|
6970
6949
|
SEALED_PATH2 = "/dev/sealed";
|
|
@@ -7500,7 +7479,7 @@ var init_wasi_fds = __esm({
|
|
|
7500
7479
|
if (oflags & OFLAGS.DIRECTORY) throw new WasiError("ENOTDIR");
|
|
7501
7480
|
if (oflags & OFLAGS.CREAT && oflags & OFLAGS.EXCL) throw new WasiError("EEXIST");
|
|
7502
7481
|
const want = wantOf2(oflags, rights);
|
|
7503
|
-
const flags = want === 6 ? O_RDWR4 : want === 2 ?
|
|
7482
|
+
const flags = want === 6 ? O_RDWR4 : want === 2 ? O_WRONLY4 : 0;
|
|
7504
7483
|
return openDevice2.call(this.kernel.sys, flags);
|
|
7505
7484
|
}
|
|
7506
7485
|
open(path, oflags, rights, fdflags) {
|
|
@@ -7604,7 +7583,7 @@ var init_wasi_fds = __esm({
|
|
|
7604
7583
|
kernelFile(path, existing, oflags, rights, fdflags) {
|
|
7605
7584
|
const { readable: readable3, writable: writable2 } = openAccess(existing, oflags, rights);
|
|
7606
7585
|
const append = (fdflags & FDFLAGS.APPEND) !== 0;
|
|
7607
|
-
const flags = (writable2 ? readable3 ? O_RDWR4 :
|
|
7586
|
+
const flags = (writable2 ? readable3 ? O_RDWR4 : O_WRONLY4 : 0) | (append ? O_APPEND2 : 0);
|
|
7608
7587
|
const made = !existing && this.createNew(path, oflags);
|
|
7609
7588
|
const truncate = made || (oflags & OFLAGS.TRUNC) !== 0;
|
|
7610
7589
|
const fd = this.kernel.sys.openVfs(path, flags, 0, {
|
|
@@ -8087,6 +8066,10 @@ function openRequest(af, type) {
|
|
|
8087
8066
|
...type === DGRAM ? { type: "dgram" } : {}
|
|
8088
8067
|
};
|
|
8089
8068
|
}
|
|
8069
|
+
function absolute(cwd, addr) {
|
|
8070
|
+
if (addr.family !== "unix" || addr.path === "" || addr.path.startsWith("\0")) return addr;
|
|
8071
|
+
return addr.path.startsWith("/") ? addr : { family: "unix", path: `${cwd}/${addr.path}` };
|
|
8072
|
+
}
|
|
8090
8073
|
function optionalAddr(view, ptr) {
|
|
8091
8074
|
if (ptr === 0 || view.getUint8(ptr) === 0) return void 0;
|
|
8092
8075
|
return readAddr(view, ptr);
|
|
@@ -8155,7 +8138,7 @@ function wasixSocketImports(host, preview1) {
|
|
|
8155
8138
|
},
|
|
8156
8139
|
sock_bind: (fd, addr) => {
|
|
8157
8140
|
socket(fd);
|
|
8158
|
-
call2({ op: "sock-bind", fd, addr: readAddr(mem.view(), addr) });
|
|
8141
|
+
call2({ op: "sock-bind", fd, addr: absolute(host.cwd, readAddr(mem.view(), addr)) });
|
|
8159
8142
|
},
|
|
8160
8143
|
sock_listen: (fd, backlog) => {
|
|
8161
8144
|
socket(fd);
|
|
@@ -8163,7 +8146,8 @@ function wasixSocketImports(host, preview1) {
|
|
|
8163
8146
|
},
|
|
8164
8147
|
sock_connect: (fd, addr) => {
|
|
8165
8148
|
const e = socket(fd);
|
|
8166
|
-
|
|
8149
|
+
const to = absolute(host.cwd, readAddr(mem.view(), addr));
|
|
8150
|
+
call2({ op: "sock-connect", fd, addr: to, nonblock: e.nonblock });
|
|
8167
8151
|
},
|
|
8168
8152
|
sock_accept_v2: (fd, flags, outFd, outAddr) => {
|
|
8169
8153
|
const e = socket(fd);
|
|
@@ -8309,6 +8293,7 @@ function filetypeOf(s) {
|
|
|
8309
8293
|
if (!s) return FILETYPE.UNKNOWN;
|
|
8310
8294
|
if (s.isSymbolicLink) return FILETYPE.SYMBOLIC_LINK;
|
|
8311
8295
|
if (s.isDirectory) return FILETYPE.DIRECTORY;
|
|
8296
|
+
if (s.isSocket) return FILETYPE.SOCKET_STREAM;
|
|
8312
8297
|
return s.isFile ? FILETYPE.REGULAR_FILE : FILETYPE.UNKNOWN;
|
|
8313
8298
|
}
|
|
8314
8299
|
function filestatOf(path, s) {
|
|
@@ -9376,14 +9361,14 @@ function restarted2(issue) {
|
|
|
9376
9361
|
function resolveFrom(cwd, path) {
|
|
9377
9362
|
return normalize(path.startsWith("/") ? path : `${cwd}/${path}`);
|
|
9378
9363
|
}
|
|
9379
|
-
var
|
|
9364
|
+
var O_WRONLY5, O_RDWR5, O_APPEND3, OFLAG_CREAT, OFLAG_TRUNC, JOIN_NON_BLOCKING, JOIN_WAKE_STOPPED, JOIN_STOPPED, WasixProcess;
|
|
9380
9365
|
var init_wasix_process = __esm({
|
|
9381
9366
|
"src/process/wasi/wasix-process.ts"() {
|
|
9382
9367
|
"use strict";
|
|
9383
9368
|
init_physical_path();
|
|
9384
9369
|
init_wasi_files();
|
|
9385
9370
|
init_wasi_host();
|
|
9386
|
-
|
|
9371
|
+
O_WRONLY5 = 1;
|
|
9387
9372
|
O_RDWR5 = 2;
|
|
9388
9373
|
O_APPEND3 = 1024;
|
|
9389
9374
|
OFLAG_CREAT = 1;
|
|
@@ -9485,7 +9470,7 @@ var init_wasix_process = __esm({
|
|
|
9485
9470
|
throw Object.assign(new Error("ENOENT"), { code: "ENOENT" });
|
|
9486
9471
|
}
|
|
9487
9472
|
const flags = (op.rightsWrite ? O_RDWR5 : 0) | (op.append ? O_APPEND3 : 0);
|
|
9488
|
-
return this.host.o.kernel.sys.openVfs(path, op.rightsWrite ? flags ||
|
|
9473
|
+
return this.host.o.kernel.sys.openVfs(path, op.rightsWrite ? flags || O_WRONLY5 : 0, 0, {
|
|
9489
9474
|
...create ? { create } : {},
|
|
9490
9475
|
...op.oflags & OFLAG_TRUNC ? { truncate: true } : {}
|
|
9491
9476
|
});
|
|
@@ -13395,7 +13380,7 @@ function checkOpen(abs, o, existing) {
|
|
|
13395
13380
|
}
|
|
13396
13381
|
function flagsOf(o) {
|
|
13397
13382
|
const write2 = o.write || o.append || o.truncate;
|
|
13398
|
-
const access = write2 ? o.read ? O_RDWR6 :
|
|
13383
|
+
const access = write2 ? o.read ? O_RDWR6 : O_WRONLY6 : 0;
|
|
13399
13384
|
return access | (o.append ? O_APPEND4 : 0);
|
|
13400
13385
|
}
|
|
13401
13386
|
function openRequest2(abs, o) {
|
|
@@ -13412,7 +13397,7 @@ function openRequest2(abs, o) {
|
|
|
13412
13397
|
function index2(n, what) {
|
|
13413
13398
|
if (!Number.isSafeInteger(n) || n < 0) throw new JsCallError("EINVAL", what);
|
|
13414
13399
|
}
|
|
13415
|
-
var CHUNK, MAX_IO,
|
|
13400
|
+
var CHUNK, MAX_IO, O_WRONLY6, O_RDWR6, O_APPEND4, BLOCK;
|
|
13416
13401
|
var init_js_io = __esm({
|
|
13417
13402
|
"src/process/js/js-io.ts"() {
|
|
13418
13403
|
"use strict";
|
|
@@ -13420,7 +13405,7 @@ var init_js_io = __esm({
|
|
|
13420
13405
|
init_js_kernel();
|
|
13421
13406
|
CHUNK = 64 * 1024;
|
|
13422
13407
|
MAX_IO = 1024 * 1024;
|
|
13423
|
-
|
|
13408
|
+
O_WRONLY6 = 1;
|
|
13424
13409
|
O_RDWR6 = 2;
|
|
13425
13410
|
O_APPEND4 = 1024;
|
|
13426
13411
|
BLOCK = 4096;
|
|
@@ -13437,8 +13422,8 @@ function missing(path) {
|
|
|
13437
13422
|
function nodeStat(mode, size = 0, owner) {
|
|
13438
13423
|
return {
|
|
13439
13424
|
isFile: false,
|
|
13440
|
-
isDirectory: (mode &
|
|
13441
|
-
isSymbolicLink: (mode &
|
|
13425
|
+
isDirectory: (mode & S_IFMT3) === DIR,
|
|
13426
|
+
isSymbolicLink: (mode & S_IFMT3) === LINK,
|
|
13442
13427
|
size,
|
|
13443
13428
|
mode,
|
|
13444
13429
|
mtimeMs: BORN,
|
|
@@ -13777,7 +13762,7 @@ function readWholeSync(file) {
|
|
|
13777
13762
|
file.close();
|
|
13778
13763
|
}
|
|
13779
13764
|
}
|
|
13780
|
-
var DEV_READ_MAX, DEVICES2, STDIO3, SELF_FD,
|
|
13765
|
+
var DEV_READ_MAX, DEVICES2, STDIO3, SELF_FD, S_IFMT3, DIR, LINK, CHAR, BORN, CHAR_KINDS;
|
|
13781
13766
|
var init_js_dev = __esm({
|
|
13782
13767
|
"src/process/js/js-dev.ts"() {
|
|
13783
13768
|
"use strict";
|
|
@@ -13789,7 +13774,7 @@ var init_js_dev = __esm({
|
|
|
13789
13774
|
DEVICES2 = ["null", "zero", "full", "random", "urandom"];
|
|
13790
13775
|
STDIO3 = ["stdin", "stdout", "stderr"];
|
|
13791
13776
|
SELF_FD = "/proc/self/fd";
|
|
13792
|
-
|
|
13777
|
+
S_IFMT3 = 61440;
|
|
13793
13778
|
DIR = 16384;
|
|
13794
13779
|
LINK = 40960;
|
|
13795
13780
|
CHAR = 8192;
|