@ai-ecoverse/slicc-kernel 1.158.1 → 1.159.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 +9 -1
- package/dist/driver-worker.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel-worker.js +205 -17
- package/dist/kernel-worker.js.map +4 -4
- package/dist/node-driver-worker.js +22 -0
- package/dist/node-driver-worker.js.map +2 -2
- package/dist/node-process-worker.js +659 -376
- package/dist/node-process-worker.js.map +4 -4
- package/dist/node.js +207 -19
- package/dist/node.js.map +4 -4
- package/dist/process-worker.js +131 -34
- package/dist/process-worker.js.map +4 -4
- package/dist/types/kernel/fd-rights.d.ts +32 -0
- package/dist/types/kernel/net/tls-server.d.ts +6 -1
- package/dist/types/kernel/pipe.d.ts +19 -2
- package/dist/types/kernel/socket-syscalls.d.ts +12 -0
- package/dist/types/kernel/socket.d.ts +9 -1
- package/dist/types/process/js/js-context.d.ts +9 -0
- package/dist/types/process/js/js-net.d.ts +1 -0
- package/dist/types/process/js/js-rights.d.ts +46 -0
- package/dist/types/process/js/js-sync.d.ts +8 -1
- package/package.json +3 -3
package/dist/process-worker.js
CHANGED
|
@@ -236,8 +236,8 @@ function localWait(wait2, blocks = true) {
|
|
|
236
236
|
function localCpuNanos() {
|
|
237
237
|
if (!local || !localSab) return void 0;
|
|
238
238
|
const now = epochMicros();
|
|
239
|
-
const
|
|
240
|
-
return BigInt(Math.max(0, now - localStart -
|
|
239
|
+
const blocked2 = Number(Atomics.load(local, BLOCKED)) + localIdle(localSab, now).idle;
|
|
240
|
+
return BigInt(Math.max(0, now - localStart - blocked2)) * 1000n;
|
|
241
241
|
}
|
|
242
242
|
function localIdle(sab, now) {
|
|
243
243
|
const state = Number(Atomics.load(slots(sab), IDLE));
|
|
@@ -2964,7 +2964,7 @@ var KERNEL_VERSION, OS_RELEASE;
|
|
|
2964
2964
|
var init_version = __esm({
|
|
2965
2965
|
"src/version.ts"() {
|
|
2966
2966
|
"use strict";
|
|
2967
|
-
KERNEL_VERSION = true ? "1.
|
|
2967
|
+
KERNEL_VERSION = true ? "1.159.1" : "0.0.0-dev";
|
|
2968
2968
|
OS_RELEASE = "6.0.0-slicc";
|
|
2969
2969
|
}
|
|
2970
2970
|
});
|
|
@@ -5503,8 +5503,8 @@ var init_process_signals = __esm({
|
|
|
5503
5503
|
this.hooks.killed(killed);
|
|
5504
5504
|
}
|
|
5505
5505
|
const timers = Atomics.exchange(this.header, SAB_I_TIMERS, 0);
|
|
5506
|
-
const
|
|
5507
|
-
const pending =
|
|
5506
|
+
const blocked2 = Atomics.load(this.header, SAB_I_BLOCKED);
|
|
5507
|
+
const pending = blocked2 === 0 ? Atomics.exchange(this.header, SAB_I_SIGNALS, 0) : Atomics.and(this.header, SAB_I_SIGNALS, blocked2) & ~blocked2;
|
|
5508
5508
|
if (this.depth <= 1) this.lastDelivered = pending | (timers & 1 ? sigbit(SIG.ALRM) : 0);
|
|
5509
5509
|
if (pending !== 0 || timers !== 0) this.delivered++;
|
|
5510
5510
|
this.raised |= pending | (timers & 1 ? sigbit(SIG.ALRM) : 0) | (timers & ~1 ? -1 : 0);
|
|
@@ -6554,8 +6554,8 @@ async function runWasmProcess(init, port2, deps = {}) {
|
|
|
6554
6554
|
};
|
|
6555
6555
|
const transport = credSyncTransport(gated, () => early(), init.cred);
|
|
6556
6556
|
const sys = kernelSys(transport);
|
|
6557
|
-
const
|
|
6558
|
-
const say = (fd) => (text) => sys.write(fd,
|
|
6557
|
+
const encoder6 = new TextEncoder();
|
|
6558
|
+
const say = (fd) => (text) => sys.write(fd, encoder6.encode(`${text}
|
|
6559
6559
|
`));
|
|
6560
6560
|
let ready;
|
|
6561
6561
|
let failed5;
|
|
@@ -9997,11 +9997,11 @@ var init_wasi_memory = __esm({
|
|
|
9997
9997
|
return at;
|
|
9998
9998
|
}
|
|
9999
9999
|
putStrings(list, ptrs, buf) {
|
|
10000
|
-
const
|
|
10000
|
+
const encoder6 = new TextEncoder();
|
|
10001
10001
|
const v = this.view();
|
|
10002
10002
|
let at = buf;
|
|
10003
10003
|
list.forEach((s, i) => {
|
|
10004
|
-
const b =
|
|
10004
|
+
const b = encoder6.encode(s);
|
|
10005
10005
|
v.setUint32(ptrs + i * 4, at, true);
|
|
10006
10006
|
this.bytes(at, b.length).set(b);
|
|
10007
10007
|
v.setUint8(at + b.length, 0);
|
|
@@ -10009,12 +10009,12 @@ var init_wasi_memory = __esm({
|
|
|
10009
10009
|
});
|
|
10010
10010
|
}
|
|
10011
10011
|
putSizes(list, countPtr, sizePtr) {
|
|
10012
|
-
const
|
|
10012
|
+
const encoder6 = new TextEncoder();
|
|
10013
10013
|
const v = this.view();
|
|
10014
10014
|
v.setUint32(countPtr, list.length, true);
|
|
10015
10015
|
v.setUint32(
|
|
10016
10016
|
sizePtr,
|
|
10017
|
-
list.reduce((n, s) => n +
|
|
10017
|
+
list.reduce((n, s) => n + encoder6.encode(s).length + 1, 0),
|
|
10018
10018
|
true
|
|
10019
10019
|
);
|
|
10020
10020
|
}
|
|
@@ -12181,7 +12181,7 @@ var init_wasi_threads = __esm({
|
|
|
12181
12181
|
this.beforeSpawn?.();
|
|
12182
12182
|
const tid = Atomics.add(this.ids, LAST_TID, 1) + 1;
|
|
12183
12183
|
const modules = this.modules?.();
|
|
12184
|
-
const
|
|
12184
|
+
const blocked2 = this.blocked?.();
|
|
12185
12185
|
this.port.postMessage({
|
|
12186
12186
|
type: WASM_THREAD_SPAWN,
|
|
12187
12187
|
thread: {
|
|
@@ -12190,7 +12190,7 @@ var init_wasi_threads = __esm({
|
|
|
12190
12190
|
memory: this.memory,
|
|
12191
12191
|
ids: this.ids.buffer,
|
|
12192
12192
|
...modules ? { modules } : {},
|
|
12193
|
-
...anyBlocked(
|
|
12193
|
+
...anyBlocked(blocked2) ? { blocked: blocked2 } : {}
|
|
12194
12194
|
}
|
|
12195
12195
|
});
|
|
12196
12196
|
return tid;
|
|
@@ -16983,6 +16983,13 @@ function resetOf(kernel, fd, closed, close) {
|
|
|
16983
16983
|
await close();
|
|
16984
16984
|
};
|
|
16985
16985
|
}
|
|
16986
|
+
function adoptOf(kernel, connection, listening, name2) {
|
|
16987
|
+
return async (fd) => {
|
|
16988
|
+
const req = { op: "sock-getopt", fd, level: SOL_SOCKET2, name: SO_ACCEPTCONN };
|
|
16989
|
+
if (await kernel.json(req) !== 1) return connection(fd);
|
|
16990
|
+
return listening(fd, await name2(fd, false));
|
|
16991
|
+
};
|
|
16992
|
+
}
|
|
16986
16993
|
function netOps(kernel, io, sync) {
|
|
16987
16994
|
const name2 = async (fd, peer) => addressOf(await kernel.json({ op: "sock-name", fd, peer }));
|
|
16988
16995
|
const connection = async (fd) => {
|
|
@@ -17104,11 +17111,6 @@ function netOps(kernel, io, sync) {
|
|
|
17104
17111
|
});
|
|
17105
17112
|
return [...r.ok && r.kind === "json" ? r.json : []];
|
|
17106
17113
|
};
|
|
17107
|
-
const inetAt = (options) => ({
|
|
17108
|
-
family: "inet",
|
|
17109
|
-
host: options.host ?? "127.0.0.1",
|
|
17110
|
-
port: port(options.port ?? 0)
|
|
17111
|
-
});
|
|
17112
17114
|
const listenSync = (options = {}) => {
|
|
17113
17115
|
const lane = sync;
|
|
17114
17116
|
const addr = inetAt(options);
|
|
@@ -17128,6 +17130,7 @@ function netOps(kernel, io, sync) {
|
|
|
17128
17130
|
return {
|
|
17129
17131
|
sync: { listen: listenSync },
|
|
17130
17132
|
resolve: lookup2,
|
|
17133
|
+
adopt: adoptOf(kernel, connection, listener, name2),
|
|
17131
17134
|
listen: async (options = {}) => {
|
|
17132
17135
|
const tls = options.tls ? serveRequest(options.tls) : void 0;
|
|
17133
17136
|
return opened2(async (fd) => {
|
|
@@ -17150,7 +17153,7 @@ function netOps(kernel, io, sync) {
|
|
|
17150
17153
|
}
|
|
17151
17154
|
};
|
|
17152
17155
|
}
|
|
17153
|
-
var PEM, TLS_CODE, ALERT, SHUT_RD, SHUT_WR, LOOPBACK3, IPV4, NEVER, SOL_SOCKET2, SO_ERROR2, ALERTS, HANDSHAKE_TIMEOUT_MS, HANDSHAKES_MAX;
|
|
17156
|
+
var PEM, TLS_CODE, ALERT, SHUT_RD, SHUT_WR, LOOPBACK3, IPV4, NEVER, SOL_SOCKET2, SO_ERROR2, SO_ACCEPTCONN, ALERTS, HANDSHAKE_TIMEOUT_MS, HANDSHAKES_MAX, inetAt;
|
|
17154
17157
|
var init_js_net = __esm({
|
|
17155
17158
|
"src/process/js/js-net.ts"() {
|
|
17156
17159
|
"use strict";
|
|
@@ -17166,6 +17169,7 @@ var init_js_net = __esm({
|
|
|
17166
17169
|
NEVER = new AbortController().signal;
|
|
17167
17170
|
SOL_SOCKET2 = 1;
|
|
17168
17171
|
SO_ERROR2 = 4;
|
|
17172
|
+
SO_ACCEPTCONN = 30;
|
|
17169
17173
|
ALERTS = {
|
|
17170
17174
|
unrecognized_name: 112,
|
|
17171
17175
|
no_application_protocol: 120,
|
|
@@ -17175,6 +17179,11 @@ var init_js_net = __esm({
|
|
|
17175
17179
|
};
|
|
17176
17180
|
HANDSHAKE_TIMEOUT_MS = 12e4;
|
|
17177
17181
|
HANDSHAKES_MAX = 64;
|
|
17182
|
+
inetAt = (options) => ({
|
|
17183
|
+
family: "inet",
|
|
17184
|
+
host: options.host ?? "127.0.0.1",
|
|
17185
|
+
port: port(options.port ?? 0)
|
|
17186
|
+
});
|
|
17178
17187
|
}
|
|
17179
17188
|
});
|
|
17180
17189
|
|
|
@@ -17327,6 +17336,69 @@ var init_js_proc = __esm({
|
|
|
17327
17336
|
}
|
|
17328
17337
|
});
|
|
17329
17338
|
|
|
17339
|
+
// src/process/js/js-rights.ts
|
|
17340
|
+
function sendmsgRequest(fd, data, options = {}) {
|
|
17341
|
+
return {
|
|
17342
|
+
op: "sock-sendmsg",
|
|
17343
|
+
fd,
|
|
17344
|
+
body: typeof data === "string" ? encoder2.encode(data) : data,
|
|
17345
|
+
fds: options.fds ?? [],
|
|
17346
|
+
nonblock: options.nonblock === true
|
|
17347
|
+
};
|
|
17348
|
+
}
|
|
17349
|
+
function recvmsgRequest(fd, max = RECV_DEFAULT, options = {}) {
|
|
17350
|
+
return {
|
|
17351
|
+
op: "sock-recvmsg",
|
|
17352
|
+
fd,
|
|
17353
|
+
max,
|
|
17354
|
+
cloexec: options.cloexec === true,
|
|
17355
|
+
nonblock: options.nonblock === true
|
|
17356
|
+
};
|
|
17357
|
+
}
|
|
17358
|
+
function decodeReceived2(frame) {
|
|
17359
|
+
const view = new DataView(frame.buffer, frame.byteOffset, frame.byteLength);
|
|
17360
|
+
const count = view.getUint32(0, true);
|
|
17361
|
+
const fds = [];
|
|
17362
|
+
for (let i = 0; i < count; i++) fds.push(view.getUint32(8 + i * 4, true));
|
|
17363
|
+
return {
|
|
17364
|
+
bytes: frame.slice(8 + count * 4),
|
|
17365
|
+
fds,
|
|
17366
|
+
ctrunc: (view.getUint32(4, true) & 1) === 1
|
|
17367
|
+
};
|
|
17368
|
+
}
|
|
17369
|
+
async function blocked(kernel, watch, req) {
|
|
17370
|
+
if (req.nonblock) return kernel.call(req);
|
|
17371
|
+
const { signal, done } = watch(req.fd);
|
|
17372
|
+
try {
|
|
17373
|
+
return await kernel.blocking(req, signal);
|
|
17374
|
+
} finally {
|
|
17375
|
+
done();
|
|
17376
|
+
}
|
|
17377
|
+
}
|
|
17378
|
+
function rightsAsync(kernel, forget, watch) {
|
|
17379
|
+
return {
|
|
17380
|
+
socketpair: async () => await kernel.json({ op: "sock-pair", domain: "unix", type: "stream" }),
|
|
17381
|
+
sendmsg: async (fd, data, options) => jsonOf(await blocked(kernel, watch, sendmsgRequest(fd, data, options))),
|
|
17382
|
+
async recvmsg(fd, max, options) {
|
|
17383
|
+
const got = decodeReceived2(
|
|
17384
|
+
bytesOf2(await blocked(kernel, watch, recvmsgRequest(fd, max, options)))
|
|
17385
|
+
);
|
|
17386
|
+
for (const n of got.fds) forget(n);
|
|
17387
|
+
return got;
|
|
17388
|
+
}
|
|
17389
|
+
};
|
|
17390
|
+
}
|
|
17391
|
+
var jsonOf, bytesOf2, encoder2, RECV_DEFAULT;
|
|
17392
|
+
var init_js_rights = __esm({
|
|
17393
|
+
"src/process/js/js-rights.ts"() {
|
|
17394
|
+
"use strict";
|
|
17395
|
+
jsonOf = (r) => r.ok && r.kind === "json" ? r.json : void 0;
|
|
17396
|
+
bytesOf2 = (r) => r.ok && r.kind === "bytes" ? r.bytes : new Uint8Array(8);
|
|
17397
|
+
encoder2 = new TextEncoder();
|
|
17398
|
+
RECV_DEFAULT = 64 * 1024;
|
|
17399
|
+
}
|
|
17400
|
+
});
|
|
17401
|
+
|
|
17330
17402
|
// src/process/js/js-run.ts
|
|
17331
17403
|
function stdioOf(how) {
|
|
17332
17404
|
if (how === void 0) return "pipe";
|
|
@@ -17364,7 +17436,7 @@ function runSync(kernel, d, o) {
|
|
|
17364
17436
|
const named = argv0Of(o.argv0, "run");
|
|
17365
17437
|
const stdout = stdioOf(o.stdout);
|
|
17366
17438
|
const stderr = stderrOf(o.stderr);
|
|
17367
|
-
const input = typeof o.input === "string" ?
|
|
17439
|
+
const input = typeof o.input === "string" ? encoder3.encode(o.input) : o.input;
|
|
17368
17440
|
const maxBuffer = limit(o.maxBuffer);
|
|
17369
17441
|
const timeout = limit(o.timeout);
|
|
17370
17442
|
const bytes = kernel.bytes({
|
|
@@ -17387,13 +17459,13 @@ function runSync(kernel, d, o) {
|
|
|
17387
17459
|
});
|
|
17388
17460
|
return decodeRun(bytes, stdout, stderr);
|
|
17389
17461
|
}
|
|
17390
|
-
var
|
|
17462
|
+
var encoder3, STDIO4;
|
|
17391
17463
|
var init_js_run = __esm({
|
|
17392
17464
|
"src/process/js/js-run.ts"() {
|
|
17393
17465
|
"use strict";
|
|
17394
17466
|
init_js_children();
|
|
17395
17467
|
init_js_kernel();
|
|
17396
|
-
|
|
17468
|
+
encoder3 = new TextEncoder();
|
|
17397
17469
|
STDIO4 = /* @__PURE__ */ new Set(["pipe", "ignore", "inherit"]);
|
|
17398
17470
|
}
|
|
17399
17471
|
});
|
|
@@ -17451,7 +17523,7 @@ function syncOps(kernel, shared) {
|
|
|
17451
17523
|
return r.ok && r.kind === "bytes" ? r.bytes : new Uint8Array(0);
|
|
17452
17524
|
};
|
|
17453
17525
|
const write2 = (fd, data, options) => {
|
|
17454
|
-
const bytes = typeof data === "string" ?
|
|
17526
|
+
const bytes = typeof data === "string" ? encoder4.encode(data) : data;
|
|
17455
17527
|
const i = info(fd);
|
|
17456
17528
|
if (writeDevice(i)) return bytes.length;
|
|
17457
17529
|
const nonblock = options?.nonblock === true;
|
|
@@ -17542,6 +17614,12 @@ function syncOps(kernel, shared) {
|
|
|
17542
17614
|
kernel.call({ op: "fd-close", fd });
|
|
17543
17615
|
},
|
|
17544
17616
|
socketpair: () => kernel.json({ op: "sock-pair", domain: "unix", type: "stream" }),
|
|
17617
|
+
sendmsg: (fd, data, options) => kernel.json(sendmsgRequest(fd, data, options)),
|
|
17618
|
+
recvmsg(fd, max, options) {
|
|
17619
|
+
const got = decodeReceived2(kernel.bytes(recvmsgRequest(fd, max, options)));
|
|
17620
|
+
for (const n of got.fds) infos.delete(n);
|
|
17621
|
+
return got;
|
|
17622
|
+
},
|
|
17545
17623
|
pipe: () => kernel.json({ op: "fd-pipe" }),
|
|
17546
17624
|
open: procOpenSync(open, kernel, { resolve, pid: shared.pid }),
|
|
17547
17625
|
fs: procFsSync(syncPathOps(kernel, resolve, statOf, open, tryDevSync), kernel, {
|
|
@@ -17688,14 +17766,14 @@ function syncPathOps(kernel, resolve, statOf, open, tryDev) {
|
|
|
17688
17766
|
...mode !== void 0 ? { mode } : {}
|
|
17689
17767
|
});
|
|
17690
17768
|
try {
|
|
17691
|
-
file.write(0, typeof data === "string" ?
|
|
17769
|
+
file.write(0, typeof data === "string" ? encoder4.encode(data) : data);
|
|
17692
17770
|
} finally {
|
|
17693
17771
|
file.close();
|
|
17694
17772
|
}
|
|
17695
17773
|
}
|
|
17696
17774
|
};
|
|
17697
17775
|
}
|
|
17698
|
-
var
|
|
17776
|
+
var encoder4, noLane, READ_ONLY, JsSyncKernel;
|
|
17699
17777
|
var init_js_sync = __esm({
|
|
17700
17778
|
"src/process/js/js-sync.ts"() {
|
|
17701
17779
|
"use strict";
|
|
@@ -17707,7 +17785,8 @@ var init_js_sync = __esm({
|
|
|
17707
17785
|
init_js_io();
|
|
17708
17786
|
init_js_kernel();
|
|
17709
17787
|
init_js_proc();
|
|
17710
|
-
|
|
17788
|
+
init_js_rights();
|
|
17789
|
+
encoder4 = new TextEncoder();
|
|
17711
17790
|
noLane = () => ({ ok: false, errno: "ENOSYS", message: "no sync lane" });
|
|
17712
17791
|
READ_ONLY = /* @__PURE__ */ new Set([...SYNC_FS_READ_ONLY, "fd-path-flush"]);
|
|
17713
17792
|
JsSyncKernel = class {
|
|
@@ -18622,13 +18701,23 @@ function pendingReads(kernel, info, random) {
|
|
|
18622
18701
|
for (const stop of reading.get(fd) ?? []) stop.abort(new JsCallError("EBADF", "read"));
|
|
18623
18702
|
reading.delete(fd);
|
|
18624
18703
|
};
|
|
18625
|
-
|
|
18704
|
+
const watch = (fd) => {
|
|
18705
|
+
const stop = new AbortController();
|
|
18706
|
+
const waits = reading.get(fd) ?? /* @__PURE__ */ new Set();
|
|
18707
|
+
reading.set(fd, waits.add(stop));
|
|
18708
|
+
const done = () => {
|
|
18709
|
+
waits.delete(stop);
|
|
18710
|
+
if (waits.size === 0 && reading.get(fd) === waits) reading.delete(fd);
|
|
18711
|
+
};
|
|
18712
|
+
return { signal: stop.signal, done };
|
|
18713
|
+
};
|
|
18714
|
+
return { read: read2, closing, watch };
|
|
18626
18715
|
}
|
|
18627
18716
|
function tracked2(pending, writeAll, writeSome, failed5) {
|
|
18628
18717
|
return (fd, data, options) => {
|
|
18629
18718
|
const status2 = failed5?.();
|
|
18630
18719
|
if (status2 !== void 0) return Promise.reject(new JsExit(status2));
|
|
18631
|
-
const bytes = typeof data === "string" ?
|
|
18720
|
+
const bytes = typeof data === "string" ? encoder5.encode(data) : data;
|
|
18632
18721
|
let settle;
|
|
18633
18722
|
const settled2 = new Promise((resolve) => settle = resolve);
|
|
18634
18723
|
pending.add(settled2);
|
|
@@ -18658,6 +18747,12 @@ function measured(measure) {
|
|
|
18658
18747
|
}
|
|
18659
18748
|
return out;
|
|
18660
18749
|
}
|
|
18750
|
+
function realmOps(o) {
|
|
18751
|
+
return {
|
|
18752
|
+
runScript: scriptRunner(o.runScript),
|
|
18753
|
+
promiseState: (promise) => o.promiseState?.(promise)
|
|
18754
|
+
};
|
|
18755
|
+
}
|
|
18661
18756
|
function scriptRunner(run) {
|
|
18662
18757
|
return (source, options = {}) => {
|
|
18663
18758
|
if (typeof source !== "string") throw new TypeError("runScript needs a source string");
|
|
@@ -18698,7 +18793,7 @@ function createContext(o) {
|
|
|
18698
18793
|
infos.set(fd, got);
|
|
18699
18794
|
return got;
|
|
18700
18795
|
};
|
|
18701
|
-
const { read: read2, closing } = pendingReads(kernel, info, random);
|
|
18796
|
+
const { read: read2, closing, watch } = pendingReads(kernel, info, random);
|
|
18702
18797
|
const { writes, writeAll, writeSome } = writer(kernel, info, o.pid);
|
|
18703
18798
|
const write2 = tracked2(pending, writeAll, writeSome, o.failed);
|
|
18704
18799
|
const writable2 = (fd) => new WritableStream({
|
|
@@ -18752,7 +18847,7 @@ function createContext(o) {
|
|
|
18752
18847
|
cred: () => syncKernel.json({ op: "proc-cred" }),
|
|
18753
18848
|
umask: (mask) => syncKernel.json(umaskRequest(mask)),
|
|
18754
18849
|
setcred: setcredOn(syncKernel),
|
|
18755
|
-
|
|
18850
|
+
...realmOps(o)
|
|
18756
18851
|
};
|
|
18757
18852
|
const io = { read: read2, send: writeAll, close: (fd) => ctx.close(fd) };
|
|
18758
18853
|
const defaults = { env: o.env, cwd: o.cwd, signal: signalNumber };
|
|
@@ -18778,7 +18873,7 @@ function createContext(o) {
|
|
|
18778
18873
|
closing(fd);
|
|
18779
18874
|
await kernel.call({ op: "fd-close", fd });
|
|
18780
18875
|
},
|
|
18781
|
-
|
|
18876
|
+
...rightsAsync(kernel, (fd) => infos.delete(fd), watch),
|
|
18782
18877
|
pipe: async () => await kernel.json({ op: "fd-pipe" }),
|
|
18783
18878
|
select: (sets, options) => selectOp(kernel, sets, options?.signal),
|
|
18784
18879
|
async fdStatus(fd) {
|
|
@@ -19008,14 +19103,14 @@ function pathOps(kernel, resolve, statOf, open, tryDev) {
|
|
|
19008
19103
|
true
|
|
19009
19104
|
);
|
|
19010
19105
|
try {
|
|
19011
|
-
await file.write(0, typeof data === "string" ?
|
|
19106
|
+
await file.write(0, typeof data === "string" ? encoder5.encode(data) : data);
|
|
19012
19107
|
} finally {
|
|
19013
19108
|
await file.close();
|
|
19014
19109
|
}
|
|
19015
19110
|
}
|
|
19016
19111
|
};
|
|
19017
19112
|
}
|
|
19018
|
-
var KERNEL_INFO, JsExit,
|
|
19113
|
+
var KERNEL_INFO, JsExit, encoder5, cryptoRandom, MEMORY_FIELDS;
|
|
19019
19114
|
var init_js_context = __esm({
|
|
19020
19115
|
"src/process/js/js-context.ts"() {
|
|
19021
19116
|
"use strict";
|
|
@@ -19033,6 +19128,7 @@ var init_js_context = __esm({
|
|
|
19033
19128
|
init_js_kernel();
|
|
19034
19129
|
init_js_net();
|
|
19035
19130
|
init_js_proc();
|
|
19131
|
+
init_js_rights();
|
|
19036
19132
|
init_js_run();
|
|
19037
19133
|
init_js_sync();
|
|
19038
19134
|
init_js_tty();
|
|
@@ -19048,7 +19144,7 @@ var init_js_context = __esm({
|
|
|
19048
19144
|
this.status = status2;
|
|
19049
19145
|
}
|
|
19050
19146
|
};
|
|
19051
|
-
|
|
19147
|
+
encoder5 = new TextEncoder();
|
|
19052
19148
|
cryptoRandom = (bytes) => void crypto.getRandomValues(bytes);
|
|
19053
19149
|
MEMORY_FIELDS = [
|
|
19054
19150
|
"heapUsed",
|
|
@@ -19234,6 +19330,7 @@ async function runJs(init, port2, deps, thread) {
|
|
|
19234
19330
|
memory: deps.memory,
|
|
19235
19331
|
asyncContext: deps.asyncContext,
|
|
19236
19332
|
runScript: deps.runScript,
|
|
19333
|
+
promiseState: deps.promiseState,
|
|
19237
19334
|
...thread?.owned ? { owned: thread.owned } : {},
|
|
19238
19335
|
held: init.held,
|
|
19239
19336
|
failed: () => failedWith
|