ziex 0.0.1-dev.6 → 0.1.0-dev.1000
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 +146 -104
- package/app.d.ts +124 -0
- package/aws-lambda/index.d.ts +96 -0
- package/aws-lambda/index.js +130 -0
- package/bin/ziex +25 -0
- package/browser/kv.d.ts +13 -0
- package/build.zig +5 -0
- package/build.zig.zon +7 -0
- package/cloudflare/app.d.ts +2 -0
- package/cloudflare/db.d.ts +2 -0
- package/cloudflare/do.d.ts +50 -0
- package/cloudflare/index.d.ts +4 -0
- package/cloudflare/index.js +2163 -0
- package/cloudflare/kv.d.ts +2 -0
- package/cloudflare/worker.d.ts +3 -0
- package/db.d.ts +22 -0
- package/index.d.ts +2 -9
- package/index.js +939 -1
- package/kv.d.ts +42 -0
- package/package.json +24 -5
- package/react/dom.d.ts +9 -123
- package/react/index.d.ts +1 -1
- package/react/index.js +148 -1
- package/react/types.d.ts +28 -31
- package/runtime.d.ts +73 -0
- package/vercel/index.d.ts +26 -0
- package/vercel/index.js +22 -0
- package/wasi.d.ts +61 -0
- package/wasm/core.d.ts +81 -0
- package/wasm/index.d.ts +61 -12
- package/wasm/index.js +1271 -1
- package/wasm/init.d.ts +1 -0
- package/wasm/init.js +1222 -0
- package/wasm/wasi.d.ts +28 -0
- package/zx.d.ts +1 -0
package/wasi.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export declare class ProcExit extends Error {
|
|
2
|
+
readonly code: number;
|
|
3
|
+
constructor(code: number);
|
|
4
|
+
}
|
|
5
|
+
export type WASI = {
|
|
6
|
+
wasiImport: Record<string, (...args: any[]) => unknown>;
|
|
7
|
+
start(instance: {
|
|
8
|
+
exports: {
|
|
9
|
+
memory: WebAssembly.Memory;
|
|
10
|
+
_start: () => unknown;
|
|
11
|
+
};
|
|
12
|
+
}): number;
|
|
13
|
+
initialize?(instance: {
|
|
14
|
+
exports: {
|
|
15
|
+
memory: WebAssembly.Memory;
|
|
16
|
+
_initialize?: () => unknown;
|
|
17
|
+
};
|
|
18
|
+
}): void;
|
|
19
|
+
};
|
|
20
|
+
export declare function createWasiImports({ request, stdinData, onStdout, }: {
|
|
21
|
+
request: Request;
|
|
22
|
+
stdinData?: Uint8Array;
|
|
23
|
+
/** Called for each stdout chunk. When provided, chunks are NOT buffered internally. */
|
|
24
|
+
onStdout?: (chunk: Uint8Array) => void;
|
|
25
|
+
}): {
|
|
26
|
+
wasiImport: {
|
|
27
|
+
args_sizes_get(argc_ptr: number, argv_buf_size_ptr: number): number;
|
|
28
|
+
args_get(argv_ptr: number, argv_buf_ptr: number): number;
|
|
29
|
+
environ_sizes_get(count_ptr: number, buf_size_ptr: number): number;
|
|
30
|
+
environ_get(_environ_ptr: number, _environ_buf_ptr: number): number;
|
|
31
|
+
fd_write(fd: number, iovs_ptr: number, iovs_len: number, nwritten_ptr: number): number;
|
|
32
|
+
fd_read(fd: number, iovs_ptr: number, iovs_len: number, nread_ptr: number): number;
|
|
33
|
+
fd_fdstat_get(_fd: number, fdstat_ptr: number): number;
|
|
34
|
+
fd_prestat_get(_fd: number, _bufptr: number): number;
|
|
35
|
+
fd_prestat_dir_name(_fd: number, _path: number, _path_len: number): number;
|
|
36
|
+
fd_close(_fd: number): number;
|
|
37
|
+
fd_pread(_fd: number, _iovs: number, _iovs_len: number, _offset: bigint, nread_ptr: number): number;
|
|
38
|
+
fd_pwrite(_fd: number, _iovs: number, _iovs_len: number, _offset: bigint, nwritten_ptr: number): number;
|
|
39
|
+
fd_filestat_get(_fd: number, filestat_ptr: number): number;
|
|
40
|
+
fd_seek(_fd: number, _offset: bigint, _whence: number, newoffset_ptr: number): number;
|
|
41
|
+
proc_exit(code: number): never;
|
|
42
|
+
sched_yield(): number;
|
|
43
|
+
clock_time_get(_id: number, _precision: bigint, time_ptr: number): number;
|
|
44
|
+
random_get(buf_ptr: number, buf_len: number): number;
|
|
45
|
+
path_open(_fd: number, _dirflags: number, _path: number, _path_len: number, _oflags: number, _rights_base: bigint, _rights_inheriting: bigint, _fdflags: number, opened_fd_ptr: number): number;
|
|
46
|
+
path_create_directory(_fd: number, _path: number, _path_len: number): number;
|
|
47
|
+
path_unlink_file(_fd: number, _path: number, _path_len: number): number;
|
|
48
|
+
path_remove_directory(_fd: number, _path: number, _path_len: number): number;
|
|
49
|
+
path_rename(_fd: number, _old_path: number, _old_path_len: number, _new_fd: number, _new_path: number, _new_path_len: number): number;
|
|
50
|
+
path_filestat_get(_fd: number, _flags: number, _path: number, _path_len: number, filestat_ptr: number): number;
|
|
51
|
+
path_readlink(_fd: number, _path: number, _path_len: number, _buf: number, _buf_len: number, nread_ptr: number): number;
|
|
52
|
+
fd_readdir(_fd: number, _buf: number, _buf_len: number, _cookie: bigint, bufused_ptr: number): number;
|
|
53
|
+
poll_oneoff(_in: number, _out: number, _nsubscriptions: number, nevents_ptr: number): number;
|
|
54
|
+
};
|
|
55
|
+
setMemory: (m: WebAssembly.Memory) => void;
|
|
56
|
+
collectOutput: () => {
|
|
57
|
+
stdout: Uint8Array;
|
|
58
|
+
stderrText: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
export declare function mergeUint8Arrays(arrays: Uint8Array[]): Uint8Array;
|
package/wasm/core.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ZigJS } from "../../../../vendor/jsz/js/src";
|
|
2
|
+
/**
|
|
3
|
+
* Core WASM bridge — environment-agnostic (browser + edge).
|
|
4
|
+
* Contains no references to browser globals (document, window, WebSocket, HTMLFormElement).
|
|
5
|
+
*/
|
|
6
|
+
export declare const CallbackType: {
|
|
7
|
+
readonly Event: 0;
|
|
8
|
+
readonly FetchSuccess: 1;
|
|
9
|
+
readonly FetchError: 2;
|
|
10
|
+
readonly Timeout: 3;
|
|
11
|
+
readonly Interval: 4;
|
|
12
|
+
readonly WebSocketOpen: 5;
|
|
13
|
+
readonly WebSocketMessage: 6;
|
|
14
|
+
readonly WebSocketError: 7;
|
|
15
|
+
readonly WebSocketClose: 8;
|
|
16
|
+
};
|
|
17
|
+
export type CallbackTypeValue = typeof CallbackType[keyof typeof CallbackType];
|
|
18
|
+
export type CallbackHandler = (callbackType: number, id: bigint, dataRef: bigint) => void;
|
|
19
|
+
export type FetchCompleteHandler = (fetchId: bigint, statusCode: number, bodyPtr: number, bodyLen: number, isError: number) => void;
|
|
20
|
+
export type WsOnOpenHandler = (wsId: bigint, protocolPtr: number, protocolLen: number) => void;
|
|
21
|
+
export type WsOnMessageHandler = (wsId: bigint, dataPtr: number, dataLen: number, isBinary: number) => void;
|
|
22
|
+
export type WsOnErrorHandler = (wsId: bigint, msgPtr: number, msgLen: number) => void;
|
|
23
|
+
export type WsOnCloseHandler = (wsId: bigint, code: number, reasonPtr: number, reasonLen: number, wasClean: number) => void;
|
|
24
|
+
export declare const jsz: ZigJS;
|
|
25
|
+
/** Store a value using jsz.storeValue and get the 64-bit reference. */
|
|
26
|
+
export declare function storeValueGetRef(val: any): bigint;
|
|
27
|
+
/** Shared encoder/decoder — avoids allocating new instances on every call. */
|
|
28
|
+
export declare const textDecoder: TextDecoder;
|
|
29
|
+
export declare const textEncoder: TextEncoder;
|
|
30
|
+
export declare function getMemoryView(): Uint8Array;
|
|
31
|
+
/** Read a string from WASM memory */
|
|
32
|
+
export declare function readString(ptr: number, len: number): string;
|
|
33
|
+
/** Write bytes to WASM memory at a specific location */
|
|
34
|
+
export declare function writeBytes(ptr: number, data: Uint8Array): void;
|
|
35
|
+
export declare function wrapPromisingExport<F extends (...args: any[]) => any>(fn: F | undefined): F | undefined;
|
|
36
|
+
export declare function invokeWasmExport<F extends (...args: any[]) => any>(fn: F | undefined, ...args: Parameters<F>): void;
|
|
37
|
+
/**
|
|
38
|
+
* Core ZX Bridge — works in both browser and edge runtimes.
|
|
39
|
+
* Contains fetch, timers, and logging. No DOM or browser-WebSocket references.
|
|
40
|
+
*
|
|
41
|
+
* Extend this class in browser environments to add DOM and WebSocket support.
|
|
42
|
+
*/
|
|
43
|
+
export declare class ZxBridgeCore {
|
|
44
|
+
#private;
|
|
45
|
+
protected readonly _alloc: (size: number) => number;
|
|
46
|
+
constructor(exports: WebAssembly.Exports);
|
|
47
|
+
/**
|
|
48
|
+
* Async fetch with full options support.
|
|
49
|
+
* Calls __zx_fetch_complete when done.
|
|
50
|
+
*/
|
|
51
|
+
fetchAsync(urlPtr: number, urlLen: number, methodPtr: number, methodLen: number, headersPtr: number, headersLen: number, bodyPtr: number, bodyLen: number, timeoutMs: number, fetchId: bigint): void;
|
|
52
|
+
/** Notify WASM that a fetch completed */
|
|
53
|
+
protected _notifyFetchComplete(fetchId: bigint, statusCode: number, body: string, isError: boolean): void;
|
|
54
|
+
/** Set a timeout and callback when it fires */
|
|
55
|
+
setTimeout(callbackId: bigint, delayMs: number): void;
|
|
56
|
+
/** Set an interval and callback each time it fires */
|
|
57
|
+
setInterval(callbackId: bigint, intervalMs: number): void;
|
|
58
|
+
/** Clear an interval */
|
|
59
|
+
clearInterval(callbackId: bigint): void;
|
|
60
|
+
dispose(): void;
|
|
61
|
+
/** Write a string to WASM memory, returning pointer and length */
|
|
62
|
+
protected _writeStringToWasm(str: string): {
|
|
63
|
+
ptr: number;
|
|
64
|
+
len: number;
|
|
65
|
+
};
|
|
66
|
+
protected _writeBytesToWasm(data: Uint8Array): {
|
|
67
|
+
ptr: number;
|
|
68
|
+
len: number;
|
|
69
|
+
};
|
|
70
|
+
/** Log a message from WASM at the given level (0=error, 1=warn, 2=info, 3=debug) */
|
|
71
|
+
static log(level: number, ptr: number, len: number): void;
|
|
72
|
+
/**
|
|
73
|
+
* Create the core import object for WASM instantiation.
|
|
74
|
+
* Includes only environment-agnostic bindings: log, fetch, and timers.
|
|
75
|
+
* Use ZxBridge.createImportObject (from wasm/index.ts) in browser contexts
|
|
76
|
+
* to additionally include DOM and WebSocket bindings.
|
|
77
|
+
*/
|
|
78
|
+
static createImportObject(bridgeRef: {
|
|
79
|
+
current: ZxBridgeCore | null;
|
|
80
|
+
}): WebAssembly.Imports;
|
|
81
|
+
}
|
package/wasm/index.d.ts
CHANGED
|
@@ -1,22 +1,71 @@
|
|
|
1
|
-
|
|
1
|
+
export { CallbackType, jsz, storeValueGetRef, textDecoder, textEncoder, getMemoryView, readString, writeBytes, ZxBridgeCore, } from "./core";
|
|
2
|
+
export type { CallbackTypeValue } from "./core";
|
|
3
|
+
import { ZxBridgeCore } from "./core";
|
|
4
|
+
import { type KVNamespace } from "../kv";
|
|
5
|
+
/**
|
|
6
|
+
* Browser ZX Bridge — extends ZxBridgeCore with DOM, WebSocket, and form-action support.
|
|
7
|
+
* Import this from environments that have access to browser globals.
|
|
8
|
+
* For edge runtimes, import ZxBridgeCore from ./core instead.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ZxBridge extends ZxBridgeCore {
|
|
2
11
|
#private;
|
|
3
|
-
exports: WebAssembly.Exports;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
12
|
+
constructor(exports: WebAssembly.Exports);
|
|
13
|
+
eventMaySuspend(velementId: bigint, eventTypeId: number): boolean;
|
|
14
|
+
setEventHandlerMode(velementId: bigint, eventTypeId: number, maySuspend: boolean): void;
|
|
15
|
+
clearEventHandlerModes(velementId: bigint): void;
|
|
16
|
+
/** Submit a form action with bound-state round-trip. */
|
|
17
|
+
submitFormActionAsync(form: HTMLFormElement, statesJson: string, fetchId: bigint): void;
|
|
18
|
+
/**
|
|
19
|
+
* Create and connect a WebSocket.
|
|
20
|
+
* Calls __zx_ws_onopen, __zx_ws_onmessage, __zx_ws_onerror, __zx_ws_onclose.
|
|
21
|
+
*/
|
|
22
|
+
wsConnect(wsId: bigint, urlPtr: number, urlLen: number, protocolsPtr: number, protocolsLen: number): void;
|
|
23
|
+
/** Send data over WebSocket */
|
|
24
|
+
wsSend(wsId: bigint, dataPtr: number, dataLen: number, isBinary: number): void;
|
|
25
|
+
/** Close WebSocket connection */
|
|
26
|
+
wsClose(wsId: bigint, code: number, reasonPtr: number, reasonLen: number): void;
|
|
27
|
+
dispose(): void;
|
|
28
|
+
/** Handle a DOM event (called by event delegation) */
|
|
29
|
+
eventbridge(velementId: bigint, eventTypeId: number, event: Event): void;
|
|
30
|
+
/** Create the full browser import object for WASM instantiation (includes DOM + WebSocket). */
|
|
31
|
+
static createImportObject(bridgeRef: {
|
|
32
|
+
current: ZxBridge | null;
|
|
33
|
+
}): WebAssembly.Imports;
|
|
8
34
|
}
|
|
9
|
-
|
|
35
|
+
/** Initialize event delegation */
|
|
36
|
+
export declare function initEventDelegation(bridge: ZxBridge, rootSelector?: string): () => void;
|
|
10
37
|
export type InitOptions = {
|
|
11
38
|
url?: string;
|
|
39
|
+
eventDelegationRoot?: string;
|
|
40
|
+
importObject?: WebAssembly.Imports;
|
|
41
|
+
kv?: Record<string, KVNamespace>;
|
|
12
42
|
};
|
|
13
|
-
type
|
|
14
|
-
|
|
15
|
-
|
|
43
|
+
type ZiexDevtoolsHook = {
|
|
44
|
+
location: {
|
|
45
|
+
href: string;
|
|
46
|
+
origin: string;
|
|
47
|
+
host: string;
|
|
48
|
+
pathname: string;
|
|
49
|
+
};
|
|
50
|
+
reinit: () => Promise<{
|
|
51
|
+
source: WebAssembly.WebAssemblyInstantiatedSource;
|
|
52
|
+
bridge: ZxBridge;
|
|
53
|
+
}>;
|
|
16
54
|
};
|
|
55
|
+
/** Initialize WASM with the ZX Bridge */
|
|
56
|
+
export declare function init(options?: InitOptions): Promise<{
|
|
57
|
+
source: WebAssembly.WebAssemblyInstantiatedSource;
|
|
58
|
+
bridge: ZxBridge;
|
|
59
|
+
}>;
|
|
17
60
|
declare global {
|
|
61
|
+
interface HTMLElement {
|
|
62
|
+
__zx_ref?: number;
|
|
63
|
+
}
|
|
18
64
|
interface Window {
|
|
19
|
-
|
|
65
|
+
__zx_dev_reinit?: () => Promise<{
|
|
66
|
+
source: WebAssembly.WebAssemblyInstantiatedSource;
|
|
67
|
+
bridge: ZxBridge;
|
|
68
|
+
}>;
|
|
69
|
+
__ZIEX_DEVTOOLS_GLOBAL_HOOK__?: ZiexDevtoolsHook;
|
|
20
70
|
}
|
|
21
71
|
}
|
|
22
|
-
export {};
|