@ai-ecoverse/slicc-kernel 1.170.3 → 1.171.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 +10 -3
- package/dist/driver-worker.js +32 -10
- package/dist/driver-worker.js.map +3 -3
- package/dist/index.js +49 -19
- package/dist/index.js.map +3 -3
- package/dist/kernel-worker.js +394 -284
- package/dist/kernel-worker.js.map +4 -4
- package/dist/node-driver-worker.js +36 -14
- package/dist/node-driver-worker.js.map +3 -3
- package/dist/node-process-worker.cjs +3 -3
- package/dist/node-process-worker.cjs.map +2 -2
- package/dist/node-process-worker.js +3 -3
- package/dist/node-process-worker.js.map +2 -2
- package/dist/node.js +491 -324
- package/dist/node.js.map +4 -4
- package/dist/process-worker.js +3 -3
- package/dist/process-worker.js.map +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/kernel/net/http-syscalls.d.ts +1 -0
- package/dist/types/kernel/net/placeholder-floor.d.ts +8 -0
- package/dist/types/kernel/net/remote-transport.d.ts +4 -1
- package/dist/types/kernel/net/transport.d.ts +4 -0
- package/dist/types/node/follow.d.ts +4 -0
- package/dist/types/node.d.ts +1 -0
- package/dist/types/realm/sync-fs-wire.d.ts +1 -1
- package/dist/types/transport.d.ts +2 -2
- package/package.json +2 -2
package/dist/types/index.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export type { JsThread, JsThreadContext, JsThreadSpawnOptions } from './process/
|
|
|
44
44
|
export type { JsTermios, JsTty, JsTtySize } from './process/js/js-tty.js';
|
|
45
45
|
export type { JsWebSocket, JsWebSocketClose, JsWebSocketMessage, JsWebSocketOptions, } from './process/js/js-websocket.js';
|
|
46
46
|
export type { ApproveHook, SudoAnswer, SudoRequest } from './sudo.js';
|
|
47
|
-
export { type FetchTransportOptions, fetchTransport, type HeaderList, type NetworkExit, type NetworkRequest, type NetworkResponse, type NetworkTraits, type NetworkTransport, type NetworkWebSocket, type NetworkWebSocketRequest, } from './transport.js';
|
|
47
|
+
export { type FetchTransportOptions, fetchTransport, type HeaderList, type NetworkExit, type NetworkRedirectPolicy, type NetworkRequest, type NetworkResponse, type NetworkTraits, type NetworkTransport, type NetworkWebSocket, type NetworkWebSocketRequest, } from './transport.js';
|
|
48
48
|
export type { Account, AddUser, Group, RemoveUser } from './users.js';
|
|
49
49
|
export interface NetworkOptions {
|
|
50
50
|
transport?: NetworkTransport;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { RealmTransport } from './transport.js';
|
|
2
|
+
export declare const PLACEHOLDER_REFUSED = "refused: this request has a sealed placeholder in its URL, a header or a Basic credential, and nothing fills it, so it was not sent";
|
|
3
|
+
export declare class PlaceholderRefused extends Error {
|
|
4
|
+
readonly status = 403;
|
|
5
|
+
readonly code = "EACCES";
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
8
|
+
export declare function placeholderFloor(inner: RealmTransport): RealmTransport;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HeaderList, RealmRedirectHop, RealmTransport, RealmTransportRequest, RealmTransportResponse, RealmTransportTraits, RealmWebSocket, RealmWebSocketMessage, RealmWebSocketRequest } from './transport.js';
|
|
1
|
+
import type { HeaderList, RealmRedirectHop, RealmRedirectPolicy, RealmTransport, RealmTransportRequest, RealmTransportResponse, RealmTransportTraits, RealmWebSocket, RealmWebSocketMessage, RealmWebSocketRequest } from './transport.js';
|
|
2
2
|
export type TransportCall = {
|
|
3
3
|
net: 'fetch';
|
|
4
4
|
nid: number;
|
|
@@ -7,6 +7,7 @@ export type TransportCall = {
|
|
|
7
7
|
headers: HeaderList;
|
|
8
8
|
body?: Uint8Array;
|
|
9
9
|
streamed?: true;
|
|
10
|
+
redirect?: RealmRedirectPolicy;
|
|
10
11
|
} | {
|
|
11
12
|
net: 'body-chunk';
|
|
12
13
|
nid: number;
|
|
@@ -53,6 +54,7 @@ export type TransportReply = {
|
|
|
53
54
|
url?: string;
|
|
54
55
|
redirected?: boolean;
|
|
55
56
|
redirects?: readonly RealmRedirectHop[];
|
|
57
|
+
opaqueRedirect?: true;
|
|
56
58
|
} | {
|
|
57
59
|
net: 'chunk';
|
|
58
60
|
nid: number;
|
|
@@ -97,6 +99,7 @@ export declare class TransportError extends Error {
|
|
|
97
99
|
readonly detail: 'transport' | undefined;
|
|
98
100
|
constructor(message: string, status?: number, code?: string, detail?: unknown);
|
|
99
101
|
}
|
|
102
|
+
export declare function unfollowed(redirect?: RealmRedirectPolicy): boolean;
|
|
100
103
|
export declare class RemoteTransport implements RealmTransport {
|
|
101
104
|
traits: RealmTransportTraits;
|
|
102
105
|
private readonly port;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export type HeaderList = ReadonlyArray<readonly [name: string, value: string]>;
|
|
2
|
+
export type RealmRedirectPolicy = 'follow' | 'manual' | 'error';
|
|
2
3
|
export interface RealmTransportRequest {
|
|
3
4
|
url: string;
|
|
4
5
|
method: string;
|
|
5
6
|
headers: HeaderList;
|
|
6
7
|
body?: Uint8Array;
|
|
7
8
|
bodyStream?: AsyncIterable<Uint8Array>;
|
|
9
|
+
redirect?: RealmRedirectPolicy;
|
|
8
10
|
signal: AbortSignal;
|
|
9
11
|
}
|
|
10
12
|
export interface RealmRedirectHop {
|
|
@@ -16,6 +18,7 @@ export interface RealmTransportResponse {
|
|
|
16
18
|
url?: string;
|
|
17
19
|
redirected?: boolean;
|
|
18
20
|
redirects?: readonly RealmRedirectHop[];
|
|
21
|
+
opaqueRedirect?: true;
|
|
19
22
|
status: number;
|
|
20
23
|
statusText: string;
|
|
21
24
|
headers: HeaderList;
|
|
@@ -36,6 +39,7 @@ export interface RealmTransportTraits {
|
|
|
36
39
|
websocket?: true;
|
|
37
40
|
streamingBodies?: true;
|
|
38
41
|
redirectHops?: true;
|
|
42
|
+
redirectPolicy?: true;
|
|
39
43
|
exit?: RealmTransportExit;
|
|
40
44
|
[trait: string]: unknown;
|
|
41
45
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RealmTransportRequest, RealmTransportResponse } from '../kernel/net/transport.js';
|
|
2
|
+
type Send = (request: RealmTransportRequest) => Promise<RealmTransportResponse>;
|
|
3
|
+
export declare function followRedirects(send: Send, request: RealmTransportRequest): Promise<RealmTransportResponse>;
|
|
4
|
+
export {};
|
package/dist/types/node.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export type { HostfsEvent, HostfsGrant, HostfsGrantHook, HostfsPortGrant, Hostfs
|
|
|
31
31
|
export { serveHostfsPort } from './mount/hostfs.js';
|
|
32
32
|
export type { MountEntry, MountSpec } from './mount/mount-fs.js';
|
|
33
33
|
export type { ApproveHook, SudoAnswer, SudoRequest } from './sudo.js';
|
|
34
|
+
export type { NetworkRedirectPolicy } from './transport.js';
|
|
34
35
|
export { fetchTransport, type NetworkTransport } from './transport.js';
|
|
35
36
|
export { memoryRoot };
|
|
36
37
|
export interface NodeKernelOptions {
|
|
@@ -47,7 +47,7 @@ export type SyncFsResult = {
|
|
|
47
47
|
message: string;
|
|
48
48
|
direct?: true;
|
|
49
49
|
dev?: string;
|
|
50
|
-
detail?: 'transport';
|
|
50
|
+
detail?: 'transport' | 'placeholder';
|
|
51
51
|
};
|
|
52
52
|
export declare const SYNC_FS_REQUEST_TIMEOUT_MS = 25000;
|
|
53
53
|
export declare const SYNC_FS_READ_ONLY: ReadonlySet<string>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { TransportCall, TransportReply } from './kernel/net/remote-transport.js';
|
|
2
|
-
import type { HeaderList, RealmRedirectHop, RealmTransport, RealmTransportExit, RealmTransportRequest, RealmTransportResponse, RealmTransportTraits, RealmWebSocket, RealmWebSocketRequest } from './kernel/net/transport.js';
|
|
2
|
+
import type { HeaderList, RealmRedirectHop, RealmRedirectPolicy, RealmTransport, RealmTransportExit, RealmTransportRequest, RealmTransportResponse, RealmTransportTraits, RealmWebSocket, RealmWebSocketRequest } from './kernel/net/transport.js';
|
|
3
3
|
import { type WebSocketConstructor } from './websocket-transport.js';
|
|
4
|
-
export type { HeaderList, RealmRedirectHop as NetworkRedirectHop, RealmTransport as NetworkTransport, RealmTransportExit as NetworkExit, RealmTransportRequest as NetworkRequest, RealmTransportResponse as NetworkResponse, RealmTransportTraits as NetworkTraits, RealmWebSocket as NetworkWebSocket, RealmWebSocketRequest as NetworkWebSocketRequest, };
|
|
4
|
+
export type { HeaderList, RealmRedirectHop as NetworkRedirectHop, RealmRedirectPolicy as NetworkRedirectPolicy, RealmTransport as NetworkTransport, RealmTransportExit as NetworkExit, RealmTransportRequest as NetworkRequest, RealmTransportResponse as NetworkResponse, RealmTransportTraits as NetworkTraits, RealmWebSocket as NetworkWebSocket, RealmWebSocketRequest as NetworkWebSocketRequest, };
|
|
5
5
|
export interface FetchTransportOptions {
|
|
6
6
|
fetch?: typeof globalThis.fetch;
|
|
7
7
|
maxRequestBody?: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/slicc-kernel",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.171.0",
|
|
4
4
|
"description": "SLICC's wasm-realm kernel: run Emscripten programs in the browser against OPFS, with fork, spawn, pipes and waitpid",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@ai-ecoverse/py-numpy": "2.5.4-4",
|
|
73
|
-
"@ai-ecoverse/slicc-cdp": "1.43.
|
|
73
|
+
"@ai-ecoverse/slicc-cdp": "1.43.1",
|
|
74
74
|
"@ai-ecoverse/slicc-scrub": "1.1.0",
|
|
75
75
|
"@ai-ecoverse/slicc-shared-web": "2.13.7",
|
|
76
76
|
"@ai-ecoverse/wasi-cargo": "0.99.0-6",
|