@ai-ecoverse/slicc-kernel 1.123.1 → 1.124.0
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 +29 -6
- package/dist/kernel-worker.js +680 -85
- package/dist/kernel-worker.js.map +4 -4
- package/dist/node-process-worker.js +88 -18
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +710 -115
- package/dist/node.js.map +4 -4
- package/dist/process-worker.js +88 -18
- package/dist/process-worker.js.map +3 -3
- package/dist/types/kernel/fd-table.d.ts +1 -1
- package/dist/types/kernel/host-ops.d.ts +1 -0
- package/dist/types/kernel/lock-service.d.ts +4 -0
- package/dist/types/kernel/locks.d.ts +3 -0
- package/dist/types/kernel/net/network.d.ts +2 -0
- package/dist/types/kernel/net/switch-conn.d.ts +28 -0
- package/dist/types/kernel/net/tls-client.d.ts +22 -0
- package/dist/types/kernel/net/tls-engine.d.ts +27 -0
- package/dist/types/kernel/net/tls-uplink.d.ts +35 -0
- package/dist/types/kernel/socket-syscalls.d.ts +10 -1
- package/dist/types/kernel/socket.d.ts +13 -1
- package/dist/types/process/js/js-net.d.ts +10 -4
- package/package.json +4 -4
package/dist/process-worker.js
CHANGED
|
@@ -2603,7 +2603,7 @@ var KERNEL_VERSION, OS_RELEASE;
|
|
|
2603
2603
|
var init_version = __esm({
|
|
2604
2604
|
"src/version.ts"() {
|
|
2605
2605
|
"use strict";
|
|
2606
|
-
KERNEL_VERSION = true ? "1.
|
|
2606
|
+
KERNEL_VERSION = true ? "1.124.0" : "0.0.0-dev";
|
|
2607
2607
|
OS_RELEASE = "6.0.0-slicc";
|
|
2608
2608
|
}
|
|
2609
2609
|
});
|
|
@@ -10552,6 +10552,7 @@ function importsContext({
|
|
|
10552
10552
|
},
|
|
10553
10553
|
tryLock(fd, exclusive) {
|
|
10554
10554
|
const path = requirePath(fd);
|
|
10555
|
+
host.fds.promote(fd);
|
|
10555
10556
|
try {
|
|
10556
10557
|
call2({ op: "lock", path, exclusive, fd });
|
|
10557
10558
|
} catch (err) {
|
|
@@ -10561,7 +10562,7 @@ function importsContext({
|
|
|
10561
10562
|
return E.SUCCESS;
|
|
10562
10563
|
},
|
|
10563
10564
|
unlock(fd) {
|
|
10564
|
-
call2({ op: "unlock", path: requirePath(fd) });
|
|
10565
|
+
call2({ op: "unlock", path: requirePath(fd), fd });
|
|
10565
10566
|
}
|
|
10566
10567
|
};
|
|
10567
10568
|
const ctx = {
|
|
@@ -13723,7 +13724,9 @@ var init_js_kernel = __esm({
|
|
|
13723
13724
|
"fd-write",
|
|
13724
13725
|
"fd-close",
|
|
13725
13726
|
"fd-open-clipboard",
|
|
13726
|
-
"net-ws-ready"
|
|
13727
|
+
"net-ws-ready",
|
|
13728
|
+
"sock-tls",
|
|
13729
|
+
"sock-tls-upgrade"
|
|
13727
13730
|
]);
|
|
13728
13731
|
JsKernel = class {
|
|
13729
13732
|
header;
|
|
@@ -15158,6 +15161,69 @@ var init_js_fetch = __esm({
|
|
|
15158
15161
|
});
|
|
15159
15162
|
|
|
15160
15163
|
// src/process/js/js-net.ts
|
|
15164
|
+
function fromBase64(text) {
|
|
15165
|
+
const bin = atob(text);
|
|
15166
|
+
const out = new Uint8Array(bin.length);
|
|
15167
|
+
for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
|
|
15168
|
+
return out;
|
|
15169
|
+
}
|
|
15170
|
+
function toBase64(bytes) {
|
|
15171
|
+
let bin = "";
|
|
15172
|
+
for (const b of bytes) bin += String.fromCharCode(b);
|
|
15173
|
+
return btoa(bin);
|
|
15174
|
+
}
|
|
15175
|
+
function caList(ca) {
|
|
15176
|
+
const items = Array.isArray(ca) ? ca : [ca];
|
|
15177
|
+
const out = [];
|
|
15178
|
+
for (const item of items) {
|
|
15179
|
+
if (item instanceof Uint8Array && item[0] === 48) out.push(toBase64(item));
|
|
15180
|
+
else {
|
|
15181
|
+
const text = item instanceof Uint8Array ? new TextDecoder().decode(item) : String(item);
|
|
15182
|
+
out.push(...[...text.matchAll(PEM)].map((m) => m[1].replace(/\s+/g, "")));
|
|
15183
|
+
}
|
|
15184
|
+
}
|
|
15185
|
+
return out;
|
|
15186
|
+
}
|
|
15187
|
+
function tlsRequest(tls) {
|
|
15188
|
+
return {
|
|
15189
|
+
...tls.servername ? { servername: tls.servername } : {},
|
|
15190
|
+
...tls.alpn ? { alpn: [...tls.alpn] } : {},
|
|
15191
|
+
...tls.ca !== void 0 ? { ca: caList(tls.ca) } : {},
|
|
15192
|
+
...tls.rejectUnauthorized === false ? { insecure: true } : {}
|
|
15193
|
+
};
|
|
15194
|
+
}
|
|
15195
|
+
function sessionOf(r) {
|
|
15196
|
+
if (r.path !== "kernel") {
|
|
15197
|
+
return Object.freeze({
|
|
15198
|
+
path: "transport",
|
|
15199
|
+
substitutes: true,
|
|
15200
|
+
protocol: "transport",
|
|
15201
|
+
alpnProtocol: r.alpnProtocol,
|
|
15202
|
+
authorized: true,
|
|
15203
|
+
servername: r.servername
|
|
15204
|
+
});
|
|
15205
|
+
}
|
|
15206
|
+
return Object.freeze({
|
|
15207
|
+
path: "kernel",
|
|
15208
|
+
substitutes: false,
|
|
15209
|
+
protocol: r.protocol ?? "TLSv1.2",
|
|
15210
|
+
alpnProtocol: r.alpnProtocol,
|
|
15211
|
+
authorized: r.authorized === true,
|
|
15212
|
+
...r.authorizationError ? { authorizationError: r.authorizationError } : {},
|
|
15213
|
+
servername: r.servername,
|
|
15214
|
+
peerCertificates: Object.freeze((r.peerCertificates ?? []).map(fromBase64))
|
|
15215
|
+
});
|
|
15216
|
+
}
|
|
15217
|
+
async function secureCall(call2) {
|
|
15218
|
+
try {
|
|
15219
|
+
return await call2();
|
|
15220
|
+
} catch (err) {
|
|
15221
|
+
const e = err;
|
|
15222
|
+
const code2 = e.code === "EPROTO" && e.detail ? TLS_CODE.exec(e.detail)?.[1] : void 0;
|
|
15223
|
+
if (code2) throw new JsCallError(code2, "connect", e.detail);
|
|
15224
|
+
throw err;
|
|
15225
|
+
}
|
|
15226
|
+
}
|
|
15161
15227
|
function errnoName(errno2) {
|
|
15162
15228
|
const found = Object.entries(E).find(([, n]) => n === errno2);
|
|
15163
15229
|
return found ? `E${found[0]}` : "EIO";
|
|
@@ -15247,20 +15313,22 @@ function netOps(kernel, io) {
|
|
|
15247
15313
|
};
|
|
15248
15314
|
};
|
|
15249
15315
|
const tlsConnect = async (options, tls) => {
|
|
15250
|
-
const
|
|
15251
|
-
|
|
15252
|
-
|
|
15253
|
-
|
|
15254
|
-
|
|
15255
|
-
|
|
15256
|
-
|
|
15257
|
-
|
|
15258
|
-
|
|
15259
|
-
|
|
15260
|
-
|
|
15261
|
-
|
|
15262
|
-
|
|
15263
|
-
|
|
15316
|
+
const common = tlsRequest(
|
|
15317
|
+
options.socket && !tls.servername && options.host ? { ...tls, servername: options.host } : tls
|
|
15318
|
+
);
|
|
15319
|
+
const r = await secureCall(
|
|
15320
|
+
() => kernel.json(
|
|
15321
|
+
options.socket ? { op: "sock-tls-upgrade", fd: options.socket.fd, ...common } : {
|
|
15322
|
+
op: "sock-tls",
|
|
15323
|
+
host: options.host ?? "localhost",
|
|
15324
|
+
port: port(options.port),
|
|
15325
|
+
...common,
|
|
15326
|
+
...tls.path ? { path: tls.path } : {}
|
|
15327
|
+
}
|
|
15328
|
+
)
|
|
15329
|
+
);
|
|
15330
|
+
const session = sessionOf(r);
|
|
15331
|
+
if (options.socket) return Object.assign(Object.create(options.socket), { tls: session });
|
|
15264
15332
|
return Object.assign(await connection(r.fd), { tls: session });
|
|
15265
15333
|
};
|
|
15266
15334
|
const lookup2 = async (name3, options = {}) => {
|
|
@@ -15317,12 +15385,14 @@ function netOps(kernel, io) {
|
|
|
15317
15385
|
}
|
|
15318
15386
|
};
|
|
15319
15387
|
}
|
|
15320
|
-
var SHUT_RD, SHUT_WR, IPV4, NEVER, SOL_SOCKET2, SO_ERROR2;
|
|
15388
|
+
var PEM, TLS_CODE, SHUT_RD, SHUT_WR, IPV4, NEVER, SOL_SOCKET2, SO_ERROR2;
|
|
15321
15389
|
var init_js_net = __esm({
|
|
15322
15390
|
"src/process/js/js-net.ts"() {
|
|
15323
15391
|
"use strict";
|
|
15324
15392
|
init_wasi_abi();
|
|
15325
15393
|
init_js_kernel();
|
|
15394
|
+
PEM = /-----BEGIN CERTIFICATE-----([\s\S]*?)-----END CERTIFICATE-----/g;
|
|
15395
|
+
TLS_CODE = /^([A-Z][A-Z0-9_]+): /;
|
|
15326
15396
|
SHUT_RD = 0;
|
|
15327
15397
|
SHUT_WR = 1;
|
|
15328
15398
|
IPV4 = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
|