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.
Files changed (44) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +101 -0
  3. package/dist/app/atlas-builder.d.ts +81 -0
  4. package/dist/app/index.d.ts +3 -0
  5. package/dist/app/types.d.ts +133 -0
  6. package/dist/fonts/index.d.ts +4 -0
  7. package/dist/fonts/manager.d.ts +21 -0
  8. package/dist/fonts/nerd-constraints.d.ts +23 -0
  9. package/dist/fonts/nerd-ranges.d.ts +2 -0
  10. package/dist/fonts/types.d.ts +40 -0
  11. package/dist/grid/grid.d.ts +22 -0
  12. package/dist/grid/index.d.ts +2 -0
  13. package/dist/grid/types.d.ts +24 -0
  14. package/dist/ime/ime.d.ts +14 -0
  15. package/dist/ime/index.d.ts +2 -0
  16. package/dist/ime/types.d.ts +10 -0
  17. package/dist/index.d.ts +16 -0
  18. package/dist/index.js +30821 -0
  19. package/dist/input/index.d.ts +6 -0
  20. package/dist/input/keymap.d.ts +24 -0
  21. package/dist/input/mouse.d.ts +38 -0
  22. package/dist/input/output.d.ts +53 -0
  23. package/dist/input/types.d.ts +159 -0
  24. package/dist/pty/index.d.ts +2 -0
  25. package/dist/pty/pty.d.ts +8 -0
  26. package/dist/pty/types.d.ts +36 -0
  27. package/dist/renderer/box-drawing-map.d.ts +1 -0
  28. package/dist/renderer/index.d.ts +5 -0
  29. package/dist/renderer/shaders.d.ts +7 -0
  30. package/dist/renderer/shapes.d.ts +40 -0
  31. package/dist/renderer/types.d.ts +80 -0
  32. package/dist/renderer/webgpu.d.ts +19 -0
  33. package/dist/restty-input.d.ts +1 -0
  34. package/dist/selection/index.d.ts +2 -0
  35. package/dist/selection/selection.d.ts +13 -0
  36. package/dist/selection/types.d.ts +14 -0
  37. package/dist/theme/builtin-themes.d.ts +3 -0
  38. package/dist/theme/catalog.d.ts +7 -0
  39. package/dist/theme/ghostty.d.ts +23 -0
  40. package/dist/theme/index.d.ts +2 -0
  41. package/dist/wasm/embedded.d.ts +1 -0
  42. package/dist/wasm/index.d.ts +1 -0
  43. package/dist/wasm/runtime.d.ts +155 -0
  44. 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
+ }