restty 0.1.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/LICENSE +21 -0
- package/README.md +101 -0
- package/dist/app/atlas-builder.d.ts +81 -0
- package/dist/app/index.d.ts +3 -0
- package/dist/app/types.d.ts +133 -0
- package/dist/fonts/index.d.ts +4 -0
- package/dist/fonts/manager.d.ts +21 -0
- package/dist/fonts/nerd-constraints.d.ts +23 -0
- package/dist/fonts/nerd-ranges.d.ts +2 -0
- package/dist/fonts/types.d.ts +40 -0
- package/dist/grid/grid.d.ts +22 -0
- package/dist/grid/index.d.ts +2 -0
- package/dist/grid/types.d.ts +24 -0
- package/dist/ime/ime.d.ts +14 -0
- package/dist/ime/index.d.ts +2 -0
- package/dist/ime/types.d.ts +10 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +30821 -0
- package/dist/input/index.d.ts +6 -0
- package/dist/input/keymap.d.ts +24 -0
- package/dist/input/mouse.d.ts +38 -0
- package/dist/input/output.d.ts +53 -0
- package/dist/input/types.d.ts +159 -0
- package/dist/pty/index.d.ts +2 -0
- package/dist/pty/pty.d.ts +8 -0
- package/dist/pty/types.d.ts +36 -0
- package/dist/renderer/box-drawing-map.d.ts +1 -0
- package/dist/renderer/index.d.ts +5 -0
- package/dist/renderer/shaders.d.ts +7 -0
- package/dist/renderer/shapes.d.ts +40 -0
- package/dist/renderer/types.d.ts +80 -0
- package/dist/renderer/webgpu.d.ts +19 -0
- package/dist/restty-input.d.ts +1 -0
- package/dist/selection/index.d.ts +2 -0
- package/dist/selection/selection.d.ts +13 -0
- package/dist/selection/types.d.ts +14 -0
- package/dist/theme/builtin-themes.d.ts +3 -0
- package/dist/theme/catalog.d.ts +7 -0
- package/dist/theme/ghostty.d.ts +23 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/wasm/embedded.d.ts +1 -0
- package/dist/wasm/index.d.ts +1 -0
- package/dist/wasm/runtime.d.ts +155 -0
- package/package.json +55 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./runtime";
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
export type WasmAbiKind = "info" | "render" | "cells";
|
|
2
|
+
export type WasmAbi = {
|
|
3
|
+
kind: WasmAbiKind;
|
|
4
|
+
};
|
|
5
|
+
export type CursorInfo = {
|
|
6
|
+
row: number;
|
|
7
|
+
col: number;
|
|
8
|
+
visible: number;
|
|
9
|
+
style: number;
|
|
10
|
+
blinking: number;
|
|
11
|
+
wideTail: number;
|
|
12
|
+
color: number;
|
|
13
|
+
};
|
|
14
|
+
export type KittyPlacement = {
|
|
15
|
+
imageId: number;
|
|
16
|
+
imageFormat: number;
|
|
17
|
+
imageWidth: number;
|
|
18
|
+
imageHeight: number;
|
|
19
|
+
imageDataPtr: number;
|
|
20
|
+
imageDataLen: number;
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
z: number;
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
cellOffsetX: number;
|
|
27
|
+
cellOffsetY: number;
|
|
28
|
+
sourceX: number;
|
|
29
|
+
sourceY: number;
|
|
30
|
+
sourceWidth: number;
|
|
31
|
+
sourceHeight: number;
|
|
32
|
+
};
|
|
33
|
+
export type RenderState = {
|
|
34
|
+
rows: number;
|
|
35
|
+
cols: number;
|
|
36
|
+
cellCount: number;
|
|
37
|
+
codepoints: Uint32Array | null;
|
|
38
|
+
contentTags: Uint8Array | null;
|
|
39
|
+
wide: Uint8Array | null;
|
|
40
|
+
cellFlags: Uint16Array | null;
|
|
41
|
+
styleFlags: Uint16Array | null;
|
|
42
|
+
linkIds: Uint32Array | null;
|
|
43
|
+
fgBytes: Uint8Array | null;
|
|
44
|
+
bgBytes: Uint8Array | null;
|
|
45
|
+
ulBytes: Uint8Array | null;
|
|
46
|
+
ulStyle: Uint8Array | null;
|
|
47
|
+
linkOffsets: Uint32Array | null;
|
|
48
|
+
linkLengths: Uint32Array | null;
|
|
49
|
+
linkBuffer: Uint8Array | null;
|
|
50
|
+
graphemeOffset: Uint32Array | null;
|
|
51
|
+
graphemeLen: Uint32Array | null;
|
|
52
|
+
graphemeBuffer: Uint32Array | null;
|
|
53
|
+
selectionStart: Int16Array | null;
|
|
54
|
+
selectionEnd: Int16Array | null;
|
|
55
|
+
cursor: CursorInfo | null;
|
|
56
|
+
};
|
|
57
|
+
export type ResttyWasmExports = WebAssembly.Exports & {
|
|
58
|
+
memory: WebAssembly.Memory;
|
|
59
|
+
restty_create: (cols: number, rows: number, maxScrollback: number) => number;
|
|
60
|
+
restty_destroy: (handle: number) => void;
|
|
61
|
+
restty_write: (handle: number, ptr: number, len: number) => void;
|
|
62
|
+
restty_resize: (handle: number, cols: number, rows: number) => void;
|
|
63
|
+
restty_set_pixel_size?: (handle: number, widthPx: number, heightPx: number) => number;
|
|
64
|
+
restty_render_update: (handle: number) => void;
|
|
65
|
+
restty_alloc: (len: number) => number;
|
|
66
|
+
restty_free: (ptr: number, len: number) => void;
|
|
67
|
+
restty_set_default_colors?: (handle: number, fg: number, bg: number, cursor: number) => number;
|
|
68
|
+
restty_set_palette?: (handle: number, ptr: number, len: number) => number;
|
|
69
|
+
restty_reset_palette?: (handle: number) => number;
|
|
70
|
+
restty_scroll_viewport?: (handle: number, delta: number) => number;
|
|
71
|
+
restty_scrollbar_total?: (handle: number) => number;
|
|
72
|
+
restty_scrollbar_offset?: (handle: number) => number;
|
|
73
|
+
restty_scrollbar_len?: (handle: number) => number;
|
|
74
|
+
restty_render_info?: (handle: number) => number;
|
|
75
|
+
restty_render_rows?: (handle: number) => number;
|
|
76
|
+
restty_render_cols?: (handle: number) => number;
|
|
77
|
+
restty_render_codepoints_ptr?: (handle: number) => number;
|
|
78
|
+
restty_render_fg_rgba_ptr?: (handle: number) => number;
|
|
79
|
+
restty_render_bg_rgba_ptr?: (handle: number) => number;
|
|
80
|
+
restty_render_ul_rgba_ptr?: (handle: number) => number;
|
|
81
|
+
restty_render_ul_style_ptr?: (handle: number) => number;
|
|
82
|
+
restty_render_grapheme_offset_ptr?: (handle: number) => number;
|
|
83
|
+
restty_render_grapheme_len_ptr?: (handle: number) => number;
|
|
84
|
+
restty_render_grapheme_buffer_ptr?: (handle: number) => number;
|
|
85
|
+
restty_render_grapheme_buffer_len?: (handle: number) => number;
|
|
86
|
+
restty_render_selection_start_ptr?: (handle: number) => number;
|
|
87
|
+
restty_render_selection_end_ptr?: (handle: number) => number;
|
|
88
|
+
restty_render_cursor_ptr?: (handle: number) => number;
|
|
89
|
+
restty_rows?: (handle: number) => number;
|
|
90
|
+
restty_cols?: (handle: number) => number;
|
|
91
|
+
restty_cell_codepoints_ptr?: (handle: number) => number;
|
|
92
|
+
restty_cell_content_tags_ptr?: (handle: number) => number;
|
|
93
|
+
restty_cell_wide_ptr?: (handle: number) => number;
|
|
94
|
+
restty_cell_flags_ptr?: (handle: number) => number;
|
|
95
|
+
restty_cell_style_flags_ptr?: (handle: number) => number;
|
|
96
|
+
restty_cell_link_ids_ptr?: (handle: number) => number;
|
|
97
|
+
restty_cell_fg_rgba_ptr?: (handle: number) => number;
|
|
98
|
+
restty_cell_bg_rgba_ptr?: (handle: number) => number;
|
|
99
|
+
restty_cell_ul_rgba_ptr?: (handle: number) => number;
|
|
100
|
+
restty_cell_underline_styles_ptr?: (handle: number) => number;
|
|
101
|
+
restty_cell_grapheme_offsets_ptr?: (handle: number) => number;
|
|
102
|
+
restty_cell_grapheme_lengths_ptr?: (handle: number) => number;
|
|
103
|
+
restty_grapheme_buffer_ptr?: (handle: number) => number;
|
|
104
|
+
restty_grapheme_buffer_len?: (handle: number) => number;
|
|
105
|
+
restty_row_selection_start_ptr?: (handle: number) => number;
|
|
106
|
+
restty_row_selection_end_ptr?: (handle: number) => number;
|
|
107
|
+
restty_cursor_info_ptr?: (handle: number) => number;
|
|
108
|
+
restty_link_offsets_ptr?: (handle: number) => number;
|
|
109
|
+
restty_link_lengths_ptr?: (handle: number) => number;
|
|
110
|
+
restty_link_buffer_ptr?: (handle: number) => number;
|
|
111
|
+
restty_link_count?: (handle: number) => number;
|
|
112
|
+
restty_link_buffer_len?: (handle: number) => number;
|
|
113
|
+
restty_debug_cursor_x?: (handle: number) => number;
|
|
114
|
+
restty_debug_cursor_y?: (handle: number) => number;
|
|
115
|
+
restty_debug_scroll_left?: (handle: number) => number;
|
|
116
|
+
restty_debug_scroll_right?: (handle: number) => number;
|
|
117
|
+
restty_debug_term_cols?: (handle: number) => number;
|
|
118
|
+
restty_debug_term_rows?: (handle: number) => number;
|
|
119
|
+
restty_debug_page_cols?: (handle: number) => number;
|
|
120
|
+
restty_debug_page_rows?: (handle: number) => number;
|
|
121
|
+
restty_output_ptr?: (handle: number) => number;
|
|
122
|
+
restty_output_len?: (handle: number) => number;
|
|
123
|
+
restty_output_consume?: (handle: number, len: number) => number;
|
|
124
|
+
restty_kitty_keyboard_flags?: (handle: number) => number;
|
|
125
|
+
restty_kitty_placement_stride?: () => number;
|
|
126
|
+
restty_kitty_placement_count?: (handle: number) => number;
|
|
127
|
+
restty_kitty_placements_ptr?: (handle: number) => number;
|
|
128
|
+
};
|
|
129
|
+
export type ResttyWasmOptions = {
|
|
130
|
+
log?: (message: string) => void;
|
|
131
|
+
};
|
|
132
|
+
export declare class ResttyWasm {
|
|
133
|
+
readonly exports: ResttyWasmExports;
|
|
134
|
+
readonly abi: WasmAbi;
|
|
135
|
+
readonly memory: WebAssembly.Memory;
|
|
136
|
+
private readonly renderViewCaches;
|
|
137
|
+
private constructor();
|
|
138
|
+
static load(options?: ResttyWasmOptions): Promise<ResttyWasm>;
|
|
139
|
+
create(cols: number, rows: number, maxScrollback: number): number;
|
|
140
|
+
destroy(handle: number): void;
|
|
141
|
+
private getRenderViewCache;
|
|
142
|
+
resize(handle: number, cols: number, rows: number): void;
|
|
143
|
+
setPixelSize(handle: number, widthPx: number, heightPx: number): void;
|
|
144
|
+
renderUpdate(handle: number): void;
|
|
145
|
+
scrollViewport(handle: number, delta: number): void;
|
|
146
|
+
drainOutput(handle: number): string;
|
|
147
|
+
getKittyKeyboardFlags(handle: number): number;
|
|
148
|
+
getKittyPlacements(handle: number): KittyPlacement[];
|
|
149
|
+
write(handle: number, text: string): void;
|
|
150
|
+
setDefaultColors(handle: number, fg: number, bg: number, cursor: number): void;
|
|
151
|
+
setPalette(handle: number, colors: Uint8Array, count: number): void;
|
|
152
|
+
resetPalette(handle: number): void;
|
|
153
|
+
getRenderState(handle: number): RenderState | null;
|
|
154
|
+
}
|
|
155
|
+
export declare function loadResttyWasm(options?: ResttyWasmOptions): Promise<ResttyWasm>;
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "restty",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Browser terminal rendering library powered by WASM, WebGPU/WebGL2, and TypeScript text shaping.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist",
|
|
8
|
+
"README.md",
|
|
9
|
+
"LICENSE"
|
|
10
|
+
],
|
|
11
|
+
"type": "module",
|
|
12
|
+
"main": "./dist/index.js",
|
|
13
|
+
"module": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"import": "./dist/index.js",
|
|
19
|
+
"default": "./dist/index.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"setup:wgpu-polyfill": "bun run scripts/setup-wgpu-polyfill.ts",
|
|
24
|
+
"clean:dist": "rm -rf dist && mkdir -p dist",
|
|
25
|
+
"build:themes": "bun run scripts/generate-builtin-themes.ts",
|
|
26
|
+
"build:lib": "bun build ./src/index.ts --outdir ./dist --target browser --format esm",
|
|
27
|
+
"build:types": "tsc -p tsconfig.build.json",
|
|
28
|
+
"build": "bun run build:themes && bun run clean:dist && bun run build:lib && bun run build:types",
|
|
29
|
+
"build:text-shaper": "bun run playground/build-text-shaper.ts",
|
|
30
|
+
"build:restty-input": "bun run playground/build-restty-input.ts",
|
|
31
|
+
"build:restty-wasm": "bun run playground/build-restty-wasm.ts",
|
|
32
|
+
"build:assets": "bun run build:text-shaper && bun run build:restty-input && bun run build:restty-wasm",
|
|
33
|
+
"check:themes": "bun run build:themes && git diff --exit-code -- src/theme/builtin-themes.ts",
|
|
34
|
+
"lint": "oxlint src playground scripts tests --ignore-pattern 'playground/public/**' --ignore-pattern 'src/theme/builtin-themes.ts'",
|
|
35
|
+
"format:base": "oxfmt src --ignore-path .gitignore --ignore-path .oxfmtignore",
|
|
36
|
+
"format": "bun run format:base --write",
|
|
37
|
+
"format:check": "bun run format:base --check",
|
|
38
|
+
"prepublishOnly": "bun run build",
|
|
39
|
+
"test": "bun test ./tests",
|
|
40
|
+
"pty": "bun run playground/pty-server.ts",
|
|
41
|
+
"playground": "bun run playground/dev-server.ts",
|
|
42
|
+
"playground:static": "bun run playground/server.ts"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@webgpu/types": "^0.1.69",
|
|
47
|
+
"oxfmt": "^0.28.0",
|
|
48
|
+
"oxlint": "^1.19.0",
|
|
49
|
+
"typescript": "^5.9.3",
|
|
50
|
+
"wgpu-polyfill": "^0.1.0"
|
|
51
|
+
},
|
|
52
|
+
"engines": {
|
|
53
|
+
"bun": ">=1.2.0"
|
|
54
|
+
}
|
|
55
|
+
}
|