@ai-ecoverse/slicc-kernel 1.166.3 → 1.166.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kernel-worker.js +19 -6
- package/dist/kernel-worker.js.map +3 -3
- package/dist/node-process-worker.cjs +95 -47
- package/dist/node-process-worker.cjs.map +3 -3
- package/dist/node-process-worker.js +95 -47
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +19 -6
- package/dist/node.js.map +3 -3
- package/dist/process-worker.js +93 -45
- package/dist/process-worker.js.map +3 -3
- package/dist/types/process/js/js-sync.d.ts +3 -2
- package/dist/types/realm/sync-sab-bridge.d.ts +1 -1
- package/dist/types/realm/sync-sab-wire.d.ts +4 -0
- package/package.json +2 -2
|
@@ -1689,19 +1689,22 @@ var init_wasi_files = __esm({
|
|
|
1689
1689
|
});
|
|
1690
1690
|
|
|
1691
1691
|
// src/realm/sync-sab-wire.ts
|
|
1692
|
+
function copyWindow(out, window, chunk, at) {
|
|
1693
|
+
setBytes.call(out, bytesPart.call(window, 0, chunk), at);
|
|
1694
|
+
}
|
|
1692
1695
|
function loadBlocked(header) {
|
|
1693
|
-
return [
|
|
1696
|
+
return [sabLoad(header, SAB_I_BLOCKED), sabLoad(header, SAB_I_BLOCKED_HI)];
|
|
1694
1697
|
}
|
|
1695
1698
|
function storeBlocked(header, [low, high]) {
|
|
1696
|
-
|
|
1697
|
-
|
|
1699
|
+
sabStore(header, SAB_I_BLOCKED_HI, high);
|
|
1700
|
+
sabStore(header, SAB_I_BLOCKED, low);
|
|
1698
1701
|
}
|
|
1699
1702
|
function loadU53(header, lo, hi) {
|
|
1700
|
-
return (
|
|
1703
|
+
return (sabLoad(header, lo) >>> 0) + sabLoad(header, hi) * U32;
|
|
1701
1704
|
}
|
|
1702
1705
|
function publishMemory(sab, bytes) {
|
|
1703
1706
|
if (bytes > 0)
|
|
1704
|
-
|
|
1707
|
+
sabStore(new capturedInt32Array(sab, 0, SAB_HEADER_I32), SAB_I_MEMORY, capturedMath.ceil(bytes / 65536));
|
|
1705
1708
|
}
|
|
1706
1709
|
function decodeSabResult(status2, payload) {
|
|
1707
1710
|
switch (status2) {
|
|
@@ -1711,14 +1714,14 @@ function decodeSabResult(status2, payload) {
|
|
|
1711
1714
|
return { ok: true, kind: "void" };
|
|
1712
1715
|
case SAB_STATUS_JSON: {
|
|
1713
1716
|
try {
|
|
1714
|
-
return { ok: true, kind: "json", json: capturedJSON.parse(
|
|
1717
|
+
return { ok: true, kind: "json", json: capturedJSON.parse(decodeText.call(decoder, payload)) };
|
|
1715
1718
|
} catch {
|
|
1716
1719
|
return { ok: false, errno: "EIO", message: "sync-sab: malformed json payload" };
|
|
1717
1720
|
}
|
|
1718
1721
|
}
|
|
1719
1722
|
case SAB_STATUS_ERRNO: {
|
|
1720
1723
|
try {
|
|
1721
|
-
const parsed = capturedJSON.parse(
|
|
1724
|
+
const parsed = capturedJSON.parse(decodeText.call(decoder, payload));
|
|
1722
1725
|
const errno2 = typeof parsed.errno === "string" && /^E[A-Z]+$|^EAI_[A-Z]+$/.test(parsed.errno) ? parsed.errno : "EIO";
|
|
1723
1726
|
const message2 = capturedString(parsed.message ?? errno2);
|
|
1724
1727
|
return {
|
|
@@ -1745,11 +1748,20 @@ function sabViews(sab) {
|
|
|
1745
1748
|
window: new capturedUint8Array(sab, SAB_HEADER_BYTES)
|
|
1746
1749
|
};
|
|
1747
1750
|
}
|
|
1748
|
-
var SAB_HEADER_I32, SAB_CLOCK_OFFSET, SAB_CLOCK_I64, SAB_HEADER_BYTES, SAB_I_STATE, SAB_I_SEQ, SAB_I_STATUS, SAB_I_TOTAL, SAB_I_CHUNK, SAB_I_OFFSET, SAB_I_REQ, SAB_I_PUB, SAB_I_SIGNALS, SAB_I_TIMERS, SAB_I_MEMORY, SAB_I_TOTAL_HI, SAB_I_OFFSET_HI, SAB_I_KILLED, SAB_I_ASYNC, SAB_I_STOP, SAB_I_BLOCKED, SAB_I_BLOCKED_HI, anyBlocked, U32, SAB_STATE_IDLE, SAB_STATE_PENDING, SAB_STATE_READY, SAB_STATUS_BYTES, SAB_STATUS_JSON, SAB_STATUS_VOID, SAB_STATUS_ERRNO, SAB_DEFAULT_WINDOW_BYTES, SAB_MIN_BYTES, SYNC_SAB_REQ_MSG, SYNC_SAB_NEXT_MSG, encoder, decoder;
|
|
1751
|
+
var atomicLoad, atomicStore, atomicWaitAsync, setBytes, bytesPart, decodeText, sabLoad, sabStore, sabWaitAsync, SAB_HEADER_I32, SAB_CLOCK_OFFSET, SAB_CLOCK_I64, SAB_HEADER_BYTES, SAB_I_STATE, SAB_I_SEQ, SAB_I_STATUS, SAB_I_TOTAL, SAB_I_CHUNK, SAB_I_OFFSET, SAB_I_REQ, SAB_I_PUB, SAB_I_SIGNALS, SAB_I_TIMERS, SAB_I_MEMORY, SAB_I_TOTAL_HI, SAB_I_OFFSET_HI, SAB_I_KILLED, SAB_I_ASYNC, SAB_I_STOP, SAB_I_BLOCKED, SAB_I_BLOCKED_HI, anyBlocked, U32, SAB_STATE_IDLE, SAB_STATE_PENDING, SAB_STATE_READY, SAB_STATUS_BYTES, SAB_STATUS_JSON, SAB_STATUS_VOID, SAB_STATUS_ERRNO, SAB_DEFAULT_WINDOW_BYTES, SAB_MIN_BYTES, SYNC_SAB_REQ_MSG, SYNC_SAB_NEXT_MSG, encoder, decoder;
|
|
1749
1752
|
var init_sync_sab_wire = __esm({
|
|
1750
1753
|
"src/realm/sync-sab-wire.ts"() {
|
|
1751
1754
|
"use strict";
|
|
1752
1755
|
init_captured_globals();
|
|
1756
|
+
atomicLoad = capturedAtomics.load;
|
|
1757
|
+
atomicStore = capturedAtomics.store;
|
|
1758
|
+
atomicWaitAsync = capturedAtomics.waitAsync;
|
|
1759
|
+
setBytes = capturedUint8Array.prototype.set;
|
|
1760
|
+
bytesPart = capturedUint8Array.prototype.subarray;
|
|
1761
|
+
decodeText = capturedTextDecoder.prototype.decode;
|
|
1762
|
+
sabLoad = (a, i) => atomicLoad(a, i);
|
|
1763
|
+
sabStore = (a, i, v) => atomicStore(a, i, v);
|
|
1764
|
+
sabWaitAsync = atomicWaitAsync;
|
|
1753
1765
|
SAB_HEADER_I32 = 18;
|
|
1754
1766
|
SAB_CLOCK_OFFSET = SAB_HEADER_I32 * 4;
|
|
1755
1767
|
SAB_CLOCK_I64 = 3;
|
|
@@ -1992,9 +2004,9 @@ function useLocalClock(sab) {
|
|
|
1992
2004
|
if (!local) return;
|
|
1993
2005
|
localSab = sab;
|
|
1994
2006
|
localStart = epochMicros();
|
|
1995
|
-
const wait2 = (
|
|
1996
|
-
() => rawWait(
|
|
1997
|
-
timeout !== 0 && capturedAtomics.load(
|
|
2007
|
+
const wait2 = (typed3, index3, value2, timeout) => localWait(
|
|
2008
|
+
() => rawWait(typed3, index3, value2, timeout),
|
|
2009
|
+
timeout !== 0 && capturedAtomics.load(typed3, index3) === value2
|
|
1998
2010
|
);
|
|
1999
2011
|
capturedAtomics.wait = wait2;
|
|
2000
2012
|
}
|
|
@@ -2185,7 +2197,7 @@ function createSyncSabTransport(sab, port3, deps = {}) {
|
|
|
2185
2197
|
const now = deps.now ?? (() => capturedperformance.now());
|
|
2186
2198
|
let seq = 0;
|
|
2187
2199
|
let typical = 0;
|
|
2188
|
-
const ready = (id) =>
|
|
2200
|
+
const ready = (id) => sabLoad(header, SAB_I_STATE) === SAB_STATE_READY && sabLoad(header, SAB_I_SEQ) === id;
|
|
2189
2201
|
function spinUntil(id, until) {
|
|
2190
2202
|
for (let stride = 0; stride < SPIN_STRIDES; stride++) {
|
|
2191
2203
|
for (let i = 0; i < SPIN_STRIDE; i++) if (ready(id)) return true;
|
|
@@ -2203,7 +2215,7 @@ function createSyncSabTransport(sab, port3, deps = {}) {
|
|
|
2203
2215
|
return;
|
|
2204
2216
|
}
|
|
2205
2217
|
for (; ; ) {
|
|
2206
|
-
const published =
|
|
2218
|
+
const published = sabLoad(header, SAB_I_PUB);
|
|
2207
2219
|
if (ready(id)) {
|
|
2208
2220
|
settled2(start2);
|
|
2209
2221
|
return;
|
|
@@ -2214,7 +2226,7 @@ function createSyncSabTransport(sab, port3, deps = {}) {
|
|
|
2214
2226
|
}
|
|
2215
2227
|
}
|
|
2216
2228
|
return {
|
|
2217
|
-
call(asked, timeoutMs2, label, given = []) {
|
|
2229
|
+
call(asked, timeoutMs2, label, given = [], sink) {
|
|
2218
2230
|
if (deps.memory) publishMemory(sab, deps.memory());
|
|
2219
2231
|
const { req, transfer } = exactBody(asked, given);
|
|
2220
2232
|
const id = ++seq;
|
|
@@ -2222,10 +2234,10 @@ function createSyncSabTransport(sab, port3, deps = {}) {
|
|
|
2222
2234
|
let out = null;
|
|
2223
2235
|
let status2 = 0;
|
|
2224
2236
|
let offset = 0;
|
|
2225
|
-
|
|
2237
|
+
sabStore(header, SAB_I_REQ, id);
|
|
2226
2238
|
try {
|
|
2227
2239
|
for (; ; ) {
|
|
2228
|
-
|
|
2240
|
+
sabStore(header, SAB_I_STATE, SAB_STATE_PENDING);
|
|
2229
2241
|
const msg = offset === 0 ? { type: SYNC_SAB_REQ_MSG, id, req } : { type: SYNC_SAB_NEXT_MSG, id, offset };
|
|
2230
2242
|
try {
|
|
2231
2243
|
if (offset === 0 && transfer.length > 0) port3.postMessage(msg, transfer);
|
|
@@ -2235,28 +2247,34 @@ function createSyncSabTransport(sab, port3, deps = {}) {
|
|
|
2235
2247
|
}
|
|
2236
2248
|
awaitReady(id, now() + timeoutMs2, label);
|
|
2237
2249
|
const total = loadU53(header, SAB_I_TOTAL, SAB_I_TOTAL_HI);
|
|
2238
|
-
const chunk =
|
|
2250
|
+
const chunk = sabLoad(header, SAB_I_CHUNK);
|
|
2239
2251
|
const at = loadU53(header, SAB_I_OFFSET, SAB_I_OFFSET_HI);
|
|
2240
2252
|
if (at !== offset || chunk < 0 || total < 0 || offset + chunk > total) {
|
|
2241
2253
|
throw syncError("EIO", label);
|
|
2242
2254
|
}
|
|
2243
2255
|
if (out === null) {
|
|
2244
|
-
status2 =
|
|
2245
|
-
out =
|
|
2256
|
+
status2 = sabLoad(header, SAB_I_STATUS);
|
|
2257
|
+
out = landing(status2, total, sink);
|
|
2246
2258
|
}
|
|
2247
|
-
out
|
|
2259
|
+
copyWindow(out, window, chunk, offset);
|
|
2248
2260
|
offset += chunk;
|
|
2249
2261
|
if (offset >= total) break;
|
|
2250
2262
|
if (chunk === 0) throw syncError("EIO", label);
|
|
2251
2263
|
}
|
|
2252
2264
|
} finally {
|
|
2253
|
-
|
|
2254
|
-
|
|
2265
|
+
sabStore(header, SAB_I_REQ, 0);
|
|
2266
|
+
sabStore(header, SAB_I_STATE, SAB_STATE_IDLE);
|
|
2255
2267
|
}
|
|
2256
2268
|
return decodeSabResult(status2, out);
|
|
2257
2269
|
}
|
|
2258
2270
|
};
|
|
2259
2271
|
}
|
|
2272
|
+
function landing(status2, total, sink) {
|
|
2273
|
+
if (!sink || status2 !== SAB_STATUS_BYTES || total > lengthOf.call(sink)) {
|
|
2274
|
+
return new capturedUint8Array(total);
|
|
2275
|
+
}
|
|
2276
|
+
return new capturedUint8Array(bufferOf.call(sink), offsetOf.call(sink), total);
|
|
2277
|
+
}
|
|
2260
2278
|
function errnoError(code2, path, direct) {
|
|
2261
2279
|
const err = syncError(code2, `sync-sab bridge, '${path}'`);
|
|
2262
2280
|
return direct ? capturedObject.assign(err, { direct }) : err;
|
|
@@ -2448,7 +2466,7 @@ function createSyncFsSabBridge(transport, opts = {}) {
|
|
|
2448
2466
|
)
|
|
2449
2467
|
};
|
|
2450
2468
|
}
|
|
2451
|
-
var UNCOUNTED_OPS, calls, looks, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS;
|
|
2469
|
+
var UNCOUNTED_OPS, calls, looks, SPIN_MS, SPIN_STRIDE, SPIN_STRIDES, SPIN_CORES, spinning, SPIN_CAP_MS, typed, getter, bufferOf, offsetOf, lengthOf;
|
|
2452
2470
|
var init_sync_sab_bridge = __esm({
|
|
2453
2471
|
"src/realm/sync-sab-bridge.ts"() {
|
|
2454
2472
|
"use strict";
|
|
@@ -2466,6 +2484,11 @@ var init_sync_sab_bridge = __esm({
|
|
|
2466
2484
|
SPIN_CORES = 4;
|
|
2467
2485
|
spinning = (capturedGlobalThis.navigator?.hardwareConcurrency ?? 0) >= SPIN_CORES;
|
|
2468
2486
|
SPIN_CAP_MS = 1;
|
|
2487
|
+
typed = capturedObject.getPrototypeOf(capturedUint8Array.prototype);
|
|
2488
|
+
getter = (name2) => capturedObject.getOwnPropertyDescriptor(typed, name2)?.get;
|
|
2489
|
+
bufferOf = getter("buffer");
|
|
2490
|
+
offsetOf = getter("byteOffset");
|
|
2491
|
+
lengthOf = getter("length");
|
|
2469
2492
|
}
|
|
2470
2493
|
});
|
|
2471
2494
|
|
|
@@ -2480,8 +2503,8 @@ function createAsyncSabTransport(sab, port3, waitAsync = defaultWaitAsync) {
|
|
|
2480
2503
|
let tail = capturedPromise.resolve();
|
|
2481
2504
|
async function ready(id) {
|
|
2482
2505
|
for (; ; ) {
|
|
2483
|
-
const published =
|
|
2484
|
-
if (
|
|
2506
|
+
const published = sabLoad(header, SAB_I_PUB);
|
|
2507
|
+
if (sabLoad(header, SAB_I_STATE) === SAB_STATE_READY && sabLoad(header, SAB_I_SEQ) === id) {
|
|
2485
2508
|
return;
|
|
2486
2509
|
}
|
|
2487
2510
|
await changed(header, SAB_I_PUB, published, waitAsync);
|
|
@@ -2493,31 +2516,31 @@ function createAsyncSabTransport(sab, port3, waitAsync = defaultWaitAsync) {
|
|
|
2493
2516
|
let out = null;
|
|
2494
2517
|
let status2 = 0;
|
|
2495
2518
|
let offset = 0;
|
|
2496
|
-
|
|
2519
|
+
sabStore(header, SAB_I_REQ, id);
|
|
2497
2520
|
try {
|
|
2498
2521
|
for (; ; ) {
|
|
2499
|
-
|
|
2522
|
+
sabStore(header, SAB_I_STATE, SAB_STATE_PENDING);
|
|
2500
2523
|
if (offset === 0) port3.postMessage({ type: SYNC_SAB_REQ_MSG, id, req }, transfer);
|
|
2501
2524
|
else port3.postMessage({ type: SYNC_SAB_NEXT_MSG, id, offset });
|
|
2502
2525
|
await ready(id);
|
|
2503
2526
|
const total = loadU53(header, SAB_I_TOTAL, SAB_I_TOTAL_HI);
|
|
2504
|
-
const chunk =
|
|
2527
|
+
const chunk = sabLoad(header, SAB_I_CHUNK);
|
|
2505
2528
|
const at = loadU53(header, SAB_I_OFFSET, SAB_I_OFFSET_HI);
|
|
2506
2529
|
if (at !== offset || chunk < 0 || total < 0 || offset + chunk > total) {
|
|
2507
2530
|
return { ok: false, errno: "EIO", message: "sync-sab: torn reply" };
|
|
2508
2531
|
}
|
|
2509
2532
|
if (out === null) {
|
|
2510
|
-
status2 =
|
|
2533
|
+
status2 = sabLoad(header, SAB_I_STATUS);
|
|
2511
2534
|
out = new capturedUint8Array(total);
|
|
2512
2535
|
}
|
|
2513
|
-
out
|
|
2536
|
+
copyWindow(out, window, chunk, offset);
|
|
2514
2537
|
offset += chunk;
|
|
2515
2538
|
if (offset >= total) break;
|
|
2516
2539
|
if (chunk === 0) return { ok: false, errno: "EIO", message: "sync-sab: empty chunk" };
|
|
2517
2540
|
}
|
|
2518
2541
|
} finally {
|
|
2519
|
-
|
|
2520
|
-
|
|
2542
|
+
sabStore(header, SAB_I_REQ, 0);
|
|
2543
|
+
sabStore(header, SAB_I_STATE, SAB_STATE_IDLE);
|
|
2521
2544
|
}
|
|
2522
2545
|
return decodeSabResult(status2, out);
|
|
2523
2546
|
}
|
|
@@ -2536,7 +2559,7 @@ var init_async_sab = __esm({
|
|
|
2536
2559
|
init_captured_globals();
|
|
2537
2560
|
init_sync_sab_bridge();
|
|
2538
2561
|
init_sync_sab_wire();
|
|
2539
|
-
defaultWaitAsync = (a, i, v) =>
|
|
2562
|
+
defaultWaitAsync = (a, i, v) => sabWaitAsync(a, i, v);
|
|
2540
2563
|
}
|
|
2541
2564
|
});
|
|
2542
2565
|
|
|
@@ -7465,7 +7488,7 @@ var init_version = __esm({
|
|
|
7465
7488
|
"src/version.ts"() {
|
|
7466
7489
|
"use strict";
|
|
7467
7490
|
init_captured_globals();
|
|
7468
|
-
KERNEL_VERSION = true ? "1.166.
|
|
7491
|
+
KERNEL_VERSION = true ? "1.166.4" : "0.0.0-dev";
|
|
7469
7492
|
OS_RELEASE = "6.0.0-slicc";
|
|
7470
7493
|
}
|
|
7471
7494
|
});
|
|
@@ -10687,7 +10710,7 @@ function syncFsync(imports, fs, glue) {
|
|
|
10687
10710
|
};
|
|
10688
10711
|
}
|
|
10689
10712
|
}
|
|
10690
|
-
function
|
|
10713
|
+
function offsetOf2(rest2) {
|
|
10691
10714
|
const at = rest2.length >= 3 ? capturedNumber(rest2[1]) * 2 ** 32 + (capturedNumber(rest2[0]) >>> 0) : capturedNumber(capturedBigInt.asIntN(64, capturedBigInt(rest2[0])));
|
|
10692
10715
|
return at >= 0 && capturedNumber.isSafeInteger(at) ? at : void 0;
|
|
10693
10716
|
}
|
|
@@ -10709,7 +10732,7 @@ function positioned(original, write2, deps) {
|
|
|
10709
10732
|
if (kfd === void 0 || !memory || !(write2 ? deps.sys.pwrite : deps.sys.pread)) {
|
|
10710
10733
|
return original(fd, iov, iovcnt, ...rest2);
|
|
10711
10734
|
}
|
|
10712
|
-
const at =
|
|
10735
|
+
const at = offsetOf2(rest2);
|
|
10713
10736
|
if (at === void 0) return wasiErrno("EINVAL");
|
|
10714
10737
|
const view = new capturedDataView(memory.buffer);
|
|
10715
10738
|
let done = 0;
|
|
@@ -12559,13 +12582,17 @@ var init_js_run = __esm({
|
|
|
12559
12582
|
});
|
|
12560
12583
|
|
|
12561
12584
|
// src/process/js/js-sync.ts
|
|
12585
|
+
function viewOf(into, at, length) {
|
|
12586
|
+
return new capturedUint8Array(bufferOf2.call(into), offsetOf3.call(into) + at, length);
|
|
12587
|
+
}
|
|
12562
12588
|
function laneOf(lane, silence = SYNC_FS_REQUEST_TIMEOUT_MS, open = createSyncSabTransport) {
|
|
12563
12589
|
if (!lane) return noLane;
|
|
12564
12590
|
const transport = open(lane.sab, lane.port);
|
|
12565
|
-
return (req) => {
|
|
12566
|
-
if (!READ_ONLY.has(req.op))
|
|
12591
|
+
return (req, sink) => {
|
|
12592
|
+
if (!READ_ONLY.has(req.op))
|
|
12593
|
+
return transport.call(req, capturedNumber.POSITIVE_INFINITY, req.op, void 0, sink);
|
|
12567
12594
|
try {
|
|
12568
|
-
return transport.call(req, silence, req.op);
|
|
12595
|
+
return transport.call(req, silence, req.op, void 0, sink);
|
|
12569
12596
|
} catch (err) {
|
|
12570
12597
|
const errno2 = err?.code;
|
|
12571
12598
|
return {
|
|
@@ -12731,10 +12758,17 @@ function syncFile(kernel, fd, path, append, forget) {
|
|
|
12731
12758
|
live();
|
|
12732
12759
|
const max = capturedMath.min(length - got, MAX_PREAD);
|
|
12733
12760
|
if (max <= 0) break;
|
|
12734
|
-
const
|
|
12761
|
+
const req = { op: "fd-pread", fd, offset: position + got, max };
|
|
12762
|
+
if (target) {
|
|
12763
|
+
const at = target.at + got;
|
|
12764
|
+
const n = kernel.bytesInto(req, viewOf(target.into, at, max));
|
|
12765
|
+
if (n === 0) break;
|
|
12766
|
+
got += n;
|
|
12767
|
+
continue;
|
|
12768
|
+
}
|
|
12769
|
+
const chunk = kernel.bytes(req);
|
|
12735
12770
|
if (chunk.length === 0) break;
|
|
12736
|
-
|
|
12737
|
-
else parts.push(chunk);
|
|
12771
|
+
parts.push(chunk);
|
|
12738
12772
|
got += chunk.length;
|
|
12739
12773
|
} while (got < length);
|
|
12740
12774
|
return target ? got : joined(parts, got);
|
|
@@ -12863,7 +12897,7 @@ function syncPathOps(kernel, resolve2, statOf, open, clean) {
|
|
|
12863
12897
|
}
|
|
12864
12898
|
};
|
|
12865
12899
|
}
|
|
12866
|
-
var encoder4, noLane, READ_ONLY, JsSyncKernel;
|
|
12900
|
+
var encoder4, typed2, getter2, bufferOf2, offsetOf3, setInto, noLane, READ_ONLY, JsSyncKernel;
|
|
12867
12901
|
var init_js_sync = __esm({
|
|
12868
12902
|
"src/process/js/js-sync.ts"() {
|
|
12869
12903
|
"use strict";
|
|
@@ -12878,6 +12912,11 @@ var init_js_sync = __esm({
|
|
|
12878
12912
|
init_js_proc();
|
|
12879
12913
|
init_js_rights();
|
|
12880
12914
|
encoder4 = new capturedTextEncoder();
|
|
12915
|
+
typed2 = capturedObject.getPrototypeOf(capturedUint8Array.prototype);
|
|
12916
|
+
getter2 = (name2) => capturedObject.getOwnPropertyDescriptor(typed2, name2)?.get;
|
|
12917
|
+
bufferOf2 = getter2("buffer");
|
|
12918
|
+
offsetOf3 = getter2("byteOffset");
|
|
12919
|
+
setInto = capturedUint8Array.prototype.set;
|
|
12881
12920
|
noLane = () => ({ ok: false, errno: "ENOSYS", message: "no sync lane" });
|
|
12882
12921
|
READ_ONLY = new capturedSet([...SYNC_FS_READ_ONLY, "fd-path-flush"]);
|
|
12883
12922
|
JsSyncKernel = class {
|
|
@@ -12890,9 +12929,9 @@ var init_js_sync = __esm({
|
|
|
12890
12929
|
this.kernel = kernel;
|
|
12891
12930
|
this.unwind = unwind;
|
|
12892
12931
|
}
|
|
12893
|
-
raw(req) {
|
|
12932
|
+
raw(req, sink) {
|
|
12894
12933
|
this.unwind();
|
|
12895
|
-
const result = this.lane(req);
|
|
12934
|
+
const result = this.lane(req, sink);
|
|
12896
12935
|
this.kernel.deliver();
|
|
12897
12936
|
this.unwind();
|
|
12898
12937
|
return result;
|
|
@@ -12910,6 +12949,15 @@ var init_js_sync = __esm({
|
|
|
12910
12949
|
const result = this.call(req);
|
|
12911
12950
|
return result.ok && result.kind === "bytes" ? result.bytes : new capturedUint8Array(0);
|
|
12912
12951
|
}
|
|
12952
|
+
bytesInto(req, sink) {
|
|
12953
|
+
const result = this.raw(req, sink);
|
|
12954
|
+
if (!result.ok) throw callError(result, req.op);
|
|
12955
|
+
if (result.kind !== "bytes") return 0;
|
|
12956
|
+
const { bytes } = result;
|
|
12957
|
+
if (bufferOf2.call(bytes) !== bufferOf2.call(sink) || offsetOf3.call(bytes) !== offsetOf3.call(sink))
|
|
12958
|
+
setInto.call(sink, bytes);
|
|
12959
|
+
return bytes.length;
|
|
12960
|
+
}
|
|
12913
12961
|
blocking(req) {
|
|
12914
12962
|
for (; ; ) {
|
|
12915
12963
|
const result = this.raw(req);
|
|
@@ -20092,8 +20140,8 @@ function refuseModules() {
|
|
|
20092
20140
|
const known = sources.get(url);
|
|
20093
20141
|
if (known !== void 0) return { format: "module", source: known, shortCircuit: true };
|
|
20094
20142
|
const payload = url.startsWith(BASE64_MODULE) ? url.slice(BASE64_MODULE.length) : "";
|
|
20095
|
-
const
|
|
20096
|
-
if (
|
|
20143
|
+
const typed3 = capturedObject.keys(context.importAttributes ?? {}).length > 0;
|
|
20144
|
+
if (typed3 || payload.length % 4 !== 0 || !PLAIN_BASE64.test(payload))
|
|
20097
20145
|
return next2(url, context);
|
|
20098
20146
|
const source = toText(fromBase64(payload, "base64"), "utf8");
|
|
20099
20147
|
return { format: "module", source, shortCircuit: true };
|