@jitl/opentui-core 0.1.97 → 0.2.15
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/NativeSpanFeed.d.ts +2 -2
- package/README.md +2 -1
- package/Renderable.d.ts +12 -1
- package/audio.d.ts +89 -0
- package/buffer.d.ts +6 -5
- package/console.d.ts +3 -1
- package/edit-buffer.d.ts +1 -1
- package/editor-view.d.ts +1 -1
- package/{index-yxe6e14n.js → index-46f5e8m6.js} +1388 -1721
- package/index-46f5e8m6.js.map +36 -0
- package/index-5zwezmgj.js +639 -0
- package/index-5zwezmgj.js.map +11 -0
- package/index-axv7cw60.js +44 -0
- package/index-axv7cw60.js.map +10 -0
- package/{index-rhfjv9c1.js → index-g9agybj3.js} +4626 -984
- package/index-g9agybj3.js.map +82 -0
- package/index-k18nf2r7.js +21 -0
- package/{ffi-x3zvcksd.js.map → index-k18nf2r7.js.map} +1 -1
- package/{index-tkk6cmr2.js → index-rp7vz5rh.js} +125 -23
- package/index-rp7vz5rh.js.map +10 -0
- package/{index-kcpn1hka.js → index-xwsdfq5x.js} +16 -6
- package/index-xwsdfq5x.js.map +10 -0
- package/index.d.ts +1 -0
- package/index.js +37 -17
- package/index.js.map +1 -1
- package/lib/RGBA.d.ts +22 -6
- package/lib/clipboard.d.ts +1 -1
- package/lib/{keymapping.d.ts → keybinding.internal.d.ts} +10 -2
- package/lib/objects-in-viewport.d.ts +4 -4
- package/lib/parse.keypress-kitty.d.ts +1 -0
- package/lib/parse.keypress.d.ts +1 -0
- package/lib/render-geometry.d.ts +8 -0
- package/lib/stdin-parser.d.ts +4 -1
- package/lib/terminal-capability-detection.d.ts +2 -0
- package/lib/terminal-palette.d.ts +20 -5
- package/lib/tree-sitter/assets/update.d.ts +1 -0
- package/lib/tree-sitter/client.d.ts +2 -0
- package/lib/tree-sitter/default-parsers.d.ts +1 -1
- package/lib/tree-sitter/index.d.ts +0 -2
- package/lib/tree-sitter/update-assets.d.ts +3 -0
- package/lib/tree-sitter/update-assets.js +377 -0
- package/lib/tree-sitter/update-assets.js.map +12 -0
- package/lib/tree-sitter-styled-text.d.ts +6 -4
- package/node22-bun-ffi-structs-ha8fmzzb.js +396 -0
- package/node22-bun-ffi-structs-ha8fmzzb.js.map +10 -0
- package/package.json +23 -22
- package/parser.worker.js +161 -24
- package/parser.worker.js.map +12 -5
- package/platform/bun-ffi-structs.d.ts +2 -0
- package/platform/ffi.d.ts +126 -0
- package/platform/node22-bun-ffi-structs.d.ts +33 -0
- package/platform/node22-ffi.d.ts +33 -0
- package/{compat → platform}/runtime.d.ts +6 -0
- package/platform/worker.d.ts +4 -0
- package/renderables/Code.d.ts +4 -0
- package/renderables/Markdown.d.ts +62 -0
- package/renderables/ScrollBox.d.ts +1 -0
- package/renderables/Select.d.ts +3 -1
- package/renderables/TabSelect.d.ts +3 -1
- package/renderables/TextBufferRenderable.d.ts +1 -0
- package/renderables/TextTable.d.ts +15 -1
- package/renderables/Textarea.d.ts +5 -3
- package/renderables/markdown-parser.d.ts +1 -0
- package/renderer-theme-mode.d.ts +29 -0
- package/renderer.d.ts +142 -16
- package/runtime-plugin-support-configure.d.ts +4 -0
- package/runtime-plugin-support-configure.js +20 -0
- package/{index-re3ntm60.js.map → runtime-plugin-support-configure.js.map} +1 -1
- package/runtime-plugin-support.d.ts +3 -3
- package/runtime-plugin-support.js +9 -18
- package/runtime-plugin-support.js.map +3 -3
- package/runtime-plugin.d.ts +1 -4
- package/runtime-plugin.js +5 -5
- package/syntax-style.d.ts +11 -3
- package/testing/terminal-capabilities.d.ts +7 -0
- package/testing/test-recorder.d.ts +6 -6
- package/testing/test-renderer.d.ts +34 -2
- package/testing.d.ts +2 -0
- package/testing.js +329 -23
- package/testing.js.map +7 -5
- package/text-buffer-view.d.ts +2 -1
- package/text-buffer.d.ts +1 -1
- package/types.d.ts +33 -1
- package/zig-structs.d.ts +111 -20
- package/zig.d.ts +57 -7
- package/3d/SpriteResourceManager.d.ts +0 -74
- package/3d/SpriteUtils.d.ts +0 -13
- package/3d/TextureUtils.d.ts +0 -24
- package/3d/ThreeRenderable.d.ts +0 -40
- package/3d/WGPURenderer.d.ts +0 -61
- package/3d/animation/ExplodingSpriteEffect.d.ts +0 -71
- package/3d/animation/PhysicsExplodingSpriteEffect.d.ts +0 -76
- package/3d/animation/SpriteAnimator.d.ts +0 -124
- package/3d/animation/SpriteParticleGenerator.d.ts +0 -62
- package/3d/canvas.d.ts +0 -44
- package/3d/index.d.ts +0 -12
- package/3d/physics/PlanckPhysicsAdapter.d.ts +0 -19
- package/3d/physics/RapierPhysicsAdapter.d.ts +0 -19
- package/3d/physics/physics-interface.d.ts +0 -27
- package/3d.d.ts +0 -2
- package/3d.js +0 -33843
- package/3d.js.map +0 -155
- package/Worker-vajwjk0s.js +0 -94
- package/Worker-vajwjk0s.js.map +0 -10
- package/compat/FFIType.d.ts +0 -304
- package/compat/Worker.d.ts +0 -1
- package/compat/bun-ffi-structs.d.ts +0 -2
- package/compat/ffi.d.ts +0 -86
- package/compat/nodejs/Worker.d.ts +0 -16
- package/compat/nodejs/bun-ffi-structs/index.d.ts +0 -46
- package/compat/nodejs/ffi.d.ts +0 -21
- package/compat/nodejs/registerResolveJs.d.ts +0 -1
- package/compat/nodejs/runtime.d.ts +0 -7
- package/compat/nodejs/test.d.ts +0 -4
- package/compat/nodejs/trampoline.worker.d.ts +0 -1
- package/compat/test.d.ts +0 -1
- package/compat/testHelpers.d.ts +0 -18
- package/ffi-x3zvcksd.js +0 -25
- package/index-5yqvbmcz.js +0 -220
- package/index-5yqvbmcz.js.map +0 -10
- package/index-bnfz2g63.js +0 -654
- package/index-bnfz2g63.js.map +0 -10
- package/index-cbvybypy.js +0 -43
- package/index-cbvybypy.js.map +0 -10
- package/index-kcpn1hka.js.map +0 -10
- package/index-re3ntm60.js +0 -51
- package/index-rhfjv9c1.js.map +0 -70
- package/index-tkk6cmr2.js.map +0 -10
- package/index-yxe6e14n.js.map +0 -42
- package/runtime-hdpkc6qf.js +0 -220
- package/runtime-hdpkc6qf.js.map +0 -17
- /package/{compat/nodejs/registerBun.d.ts → native-event-worker-repro.worker.d.ts} +0 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
ptr,
|
|
4
|
+
toArrayBuffer
|
|
5
|
+
} from "./index-5zwezmgj.js";
|
|
6
|
+
import"./index-k18nf2r7.js";
|
|
7
|
+
|
|
8
|
+
// src/platform/node22-bun-ffi-structs.ts
|
|
9
|
+
var pointerSize = process.arch === "x64" || process.arch === "arm64" ? 8 : 4;
|
|
10
|
+
var typeSizes = {
|
|
11
|
+
u8: 1,
|
|
12
|
+
bool_u8: 1,
|
|
13
|
+
bool_u32: 4,
|
|
14
|
+
u16: 2,
|
|
15
|
+
i16: 2,
|
|
16
|
+
u32: 4,
|
|
17
|
+
i32: 4,
|
|
18
|
+
u64: 8,
|
|
19
|
+
f32: 4,
|
|
20
|
+
f64: 8,
|
|
21
|
+
pointer: pointerSize
|
|
22
|
+
};
|
|
23
|
+
var typeAlignments = { ...typeSizes };
|
|
24
|
+
var primitiveKeys = Object.keys(typeSizes);
|
|
25
|
+
var encoder = new TextEncoder;
|
|
26
|
+
var decoder = new TextDecoder;
|
|
27
|
+
function alignOffset(offset, align) {
|
|
28
|
+
return offset + (align - 1) & ~(align - 1);
|
|
29
|
+
}
|
|
30
|
+
function isPrimitiveType(type) {
|
|
31
|
+
return typeof type === "string" && primitiveKeys.includes(type);
|
|
32
|
+
}
|
|
33
|
+
function isEnum(type) {
|
|
34
|
+
return typeof type === "object" && type !== null && type.__type === "enum";
|
|
35
|
+
}
|
|
36
|
+
function isStruct(type) {
|
|
37
|
+
return typeof type === "object" && type !== null && type.__type === "struct";
|
|
38
|
+
}
|
|
39
|
+
function primitivePackers(type) {
|
|
40
|
+
switch (type) {
|
|
41
|
+
case "u8":
|
|
42
|
+
return {
|
|
43
|
+
pack: (view, offset, value) => view.setUint8(offset, value ?? 0),
|
|
44
|
+
unpack: (view, offset) => view.getUint8(offset)
|
|
45
|
+
};
|
|
46
|
+
case "bool_u8":
|
|
47
|
+
return {
|
|
48
|
+
pack: (view, offset, value) => view.setUint8(offset, value ? 1 : 0),
|
|
49
|
+
unpack: (view, offset) => Boolean(view.getUint8(offset))
|
|
50
|
+
};
|
|
51
|
+
case "bool_u32":
|
|
52
|
+
return {
|
|
53
|
+
pack: (view, offset, value) => view.setUint32(offset, value ? 1 : 0, true),
|
|
54
|
+
unpack: (view, offset) => Boolean(view.getUint32(offset, true))
|
|
55
|
+
};
|
|
56
|
+
case "u16":
|
|
57
|
+
return {
|
|
58
|
+
pack: (view, offset, value) => view.setUint16(offset, value ?? 0, true),
|
|
59
|
+
unpack: (view, offset) => view.getUint16(offset, true)
|
|
60
|
+
};
|
|
61
|
+
case "i16":
|
|
62
|
+
return {
|
|
63
|
+
pack: (view, offset, value) => view.setInt16(offset, value ?? 0, true),
|
|
64
|
+
unpack: (view, offset) => view.getInt16(offset, true)
|
|
65
|
+
};
|
|
66
|
+
case "u32":
|
|
67
|
+
return {
|
|
68
|
+
pack: (view, offset, value) => view.setUint32(offset, value ?? 0, true),
|
|
69
|
+
unpack: (view, offset) => view.getUint32(offset, true)
|
|
70
|
+
};
|
|
71
|
+
case "i32":
|
|
72
|
+
return {
|
|
73
|
+
pack: (view, offset, value) => view.setInt32(offset, value ?? 0, true),
|
|
74
|
+
unpack: (view, offset) => view.getInt32(offset, true)
|
|
75
|
+
};
|
|
76
|
+
case "u64":
|
|
77
|
+
return {
|
|
78
|
+
pack: (view, offset, value) => view.setBigUint64(offset, BigInt(value ?? 0), true),
|
|
79
|
+
unpack: (view, offset) => view.getBigUint64(offset, true)
|
|
80
|
+
};
|
|
81
|
+
case "f32":
|
|
82
|
+
return {
|
|
83
|
+
pack: (view, offset, value) => view.setFloat32(offset, value ?? 0, true),
|
|
84
|
+
unpack: (view, offset) => view.getFloat32(offset, true)
|
|
85
|
+
};
|
|
86
|
+
case "f64":
|
|
87
|
+
return {
|
|
88
|
+
pack: (view, offset, value) => view.setFloat64(offset, value ?? 0, true),
|
|
89
|
+
unpack: (view, offset) => view.getFloat64(offset, true)
|
|
90
|
+
};
|
|
91
|
+
case "pointer":
|
|
92
|
+
return {
|
|
93
|
+
pack: (view, offset, value) => {
|
|
94
|
+
if (pointerSize === 8) {
|
|
95
|
+
view.setBigUint64(offset, value == null ? 0n : BigInt(value), true);
|
|
96
|
+
} else {
|
|
97
|
+
view.setUint32(offset, value == null ? 0 : Number(value), true);
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
unpack: (view, offset) => {
|
|
101
|
+
const value = pointerSize === 8 ? view.getBigUint64(offset, true) : BigInt(view.getUint32(offset, true));
|
|
102
|
+
return Number(value);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
default:
|
|
106
|
+
throw new Error(`Unsupported primitive type: ${type}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
var { pack: packPointer, unpack: unpackPointer } = primitivePackers("pointer");
|
|
110
|
+
function defineEnum(mapping, base = "u32") {
|
|
111
|
+
const reverse = Object.fromEntries(Object.entries(mapping).map(([key, value]) => [value, key]));
|
|
112
|
+
return {
|
|
113
|
+
__type: "enum",
|
|
114
|
+
type: base,
|
|
115
|
+
enum: mapping,
|
|
116
|
+
to(value) {
|
|
117
|
+
if (typeof value === "number") {
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
if (Object.hasOwn(mapping, value)) {
|
|
121
|
+
return mapping[value];
|
|
122
|
+
}
|
|
123
|
+
throw new TypeError(`Invalid enum value: ${value}`);
|
|
124
|
+
},
|
|
125
|
+
from(value) {
|
|
126
|
+
const key = reverse[Number(value)];
|
|
127
|
+
if (key == null) {
|
|
128
|
+
throw new TypeError(`Invalid enum value: ${String(value)}`);
|
|
129
|
+
}
|
|
130
|
+
return key;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function objectPtr() {
|
|
135
|
+
return { __type: "objectPointer" };
|
|
136
|
+
}
|
|
137
|
+
function packObjectArray(values) {
|
|
138
|
+
const buffer = new ArrayBuffer(values.length * pointerSize);
|
|
139
|
+
const view = new DataView(buffer);
|
|
140
|
+
for (let i = 0;i < values.length; i++) {
|
|
141
|
+
packPointer(view, i * pointerSize, values[i]?.ptr ?? null);
|
|
142
|
+
}
|
|
143
|
+
return view;
|
|
144
|
+
}
|
|
145
|
+
function allocStruct(structDef, options) {
|
|
146
|
+
const buffer = new ArrayBuffer(structDef.size);
|
|
147
|
+
const view = new DataView(buffer);
|
|
148
|
+
const result = { buffer, view };
|
|
149
|
+
if (!options?.lengths) {
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
const subBuffers = {};
|
|
153
|
+
for (const [fieldName, length] of Object.entries(options.lengths)) {
|
|
154
|
+
const arrayMeta = structDef.arrayFields.get(fieldName);
|
|
155
|
+
if (!arrayMeta) {
|
|
156
|
+
throw new Error(`Field '${fieldName}' is not an array field with a lengthOf field`);
|
|
157
|
+
}
|
|
158
|
+
const subBuffer = new ArrayBuffer(length * arrayMeta.elementSize);
|
|
159
|
+
subBuffers[fieldName] = subBuffer;
|
|
160
|
+
packPointer(view, arrayMeta.arrayOffset, length > 0 ? ptr(subBuffer) : null);
|
|
161
|
+
arrayMeta.lengthPack(view, arrayMeta.lengthOffset, length);
|
|
162
|
+
}
|
|
163
|
+
result.subBuffers = subBuffers;
|
|
164
|
+
return result;
|
|
165
|
+
}
|
|
166
|
+
function defineStruct(fields, structDefOptions = {}) {
|
|
167
|
+
const layout = [];
|
|
168
|
+
const lengthOfFields = new Map;
|
|
169
|
+
const arrayFields = new Map;
|
|
170
|
+
let offset = 0;
|
|
171
|
+
let maxAlign = 1;
|
|
172
|
+
for (const [name, rawType, options = {}] of fields) {
|
|
173
|
+
if (options.condition && !options.condition()) {
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
const field = buildField(name, rawType, options);
|
|
177
|
+
offset = alignOffset(offset, field.align);
|
|
178
|
+
field.offset = offset;
|
|
179
|
+
layout.push(field);
|
|
180
|
+
offset += field.size;
|
|
181
|
+
maxAlign = Math.max(maxAlign, field.align);
|
|
182
|
+
if (options.lengthOf) {
|
|
183
|
+
lengthOfFields.set(options.lengthOf, field);
|
|
184
|
+
}
|
|
185
|
+
if (field.arrayElementType) {
|
|
186
|
+
arrayFields.set(name, {
|
|
187
|
+
elementSize: field.elementSize,
|
|
188
|
+
arrayOffset: field.offset,
|
|
189
|
+
lengthOffset: 0,
|
|
190
|
+
lengthPack: primitivePackers("u32").pack
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const totalSize = alignOffset(offset, maxAlign);
|
|
195
|
+
for (const [arrayName, lengthField] of lengthOfFields) {
|
|
196
|
+
const field = layout.find((candidate) => candidate.name === arrayName);
|
|
197
|
+
if (field) {
|
|
198
|
+
field.lengthField = lengthField;
|
|
199
|
+
}
|
|
200
|
+
const arrayMeta = arrayFields.get(arrayName);
|
|
201
|
+
if (arrayMeta) {
|
|
202
|
+
arrayMeta.lengthOffset = lengthField.offset;
|
|
203
|
+
arrayMeta.lengthPack = lengthField.packRaw;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const structDef = {
|
|
207
|
+
__type: "struct",
|
|
208
|
+
size: totalSize,
|
|
209
|
+
align: maxAlign,
|
|
210
|
+
layoutByName: new Map(layout.map((field) => [field.name, field])),
|
|
211
|
+
arrayFields,
|
|
212
|
+
pack(value, options) {
|
|
213
|
+
const buffer = new ArrayBuffer(totalSize);
|
|
214
|
+
const view = new DataView(buffer);
|
|
215
|
+
const mappedValue = structDefOptions.mapValue ? structDefOptions.mapValue(value) : value;
|
|
216
|
+
const context = { lengths: new Map, subBuffers: [] };
|
|
217
|
+
for (const field of layout) {
|
|
218
|
+
const fieldValue = mappedValue[field.name] ?? field.default;
|
|
219
|
+
field.pack(view, field.offset, fieldValue, mappedValue, options, context);
|
|
220
|
+
}
|
|
221
|
+
if (context.subBuffers.length > 0) {
|
|
222
|
+
Object.defineProperty(buffer, "__opentuiSubBuffers", { value: context.subBuffers });
|
|
223
|
+
}
|
|
224
|
+
return buffer;
|
|
225
|
+
},
|
|
226
|
+
packInto(value, view, baseOffset, options) {
|
|
227
|
+
const mappedValue = structDefOptions.mapValue ? structDefOptions.mapValue(value) : value;
|
|
228
|
+
const context = { lengths: new Map, subBuffers: [] };
|
|
229
|
+
for (const field of layout) {
|
|
230
|
+
const fieldValue = mappedValue[field.name] ?? field.default;
|
|
231
|
+
field.pack(view, baseOffset + field.offset, fieldValue, mappedValue, options, context);
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
unpack(buffer) {
|
|
235
|
+
if (buffer.byteLength < totalSize) {
|
|
236
|
+
throw new Error(`Buffer size (${buffer.byteLength}) is smaller than struct size (${totalSize}) for unpacking.`);
|
|
237
|
+
}
|
|
238
|
+
const view = new DataView(buffer);
|
|
239
|
+
const result = structDefOptions.default ? { ...structDefOptions.default } : {};
|
|
240
|
+
for (const field of layout) {
|
|
241
|
+
if (!field.deferredUnpack) {
|
|
242
|
+
result[field.name] = field.unpack(view, field.offset, result);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
for (const field of layout) {
|
|
246
|
+
if (field.deferredUnpack) {
|
|
247
|
+
result[field.name] = field.unpack(view, field.offset, result);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return structDefOptions.reduceValue ? structDefOptions.reduceValue(result) : result;
|
|
251
|
+
},
|
|
252
|
+
packList(values, options) {
|
|
253
|
+
const buffer = new ArrayBuffer(totalSize * values.length);
|
|
254
|
+
const view = new DataView(buffer);
|
|
255
|
+
const subBuffers = [];
|
|
256
|
+
values.forEach((value, index) => {
|
|
257
|
+
const mappedValue = structDefOptions.mapValue ? structDefOptions.mapValue(value) : value;
|
|
258
|
+
const context = { lengths: new Map, subBuffers };
|
|
259
|
+
for (const field of layout) {
|
|
260
|
+
const fieldValue = mappedValue[field.name] ?? field.default;
|
|
261
|
+
field.pack(view, index * totalSize + field.offset, fieldValue, mappedValue, options, context);
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
if (subBuffers.length > 0) {
|
|
265
|
+
Object.defineProperty(buffer, "__opentuiSubBuffers", { value: subBuffers });
|
|
266
|
+
}
|
|
267
|
+
return buffer;
|
|
268
|
+
},
|
|
269
|
+
unpackList(buffer, count) {
|
|
270
|
+
const result = [];
|
|
271
|
+
for (let index = 0;index < count; index++) {
|
|
272
|
+
result.push(structDef.unpack(buffer.slice(index * totalSize, (index + 1) * totalSize)));
|
|
273
|
+
}
|
|
274
|
+
return result;
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
return structDef;
|
|
278
|
+
}
|
|
279
|
+
function buildField(name, rawType, options) {
|
|
280
|
+
const field = {
|
|
281
|
+
name,
|
|
282
|
+
type: rawType,
|
|
283
|
+
default: options.default,
|
|
284
|
+
optional: options.optional || options.default !== undefined || options.lengthOf !== undefined,
|
|
285
|
+
deferredUnpack: false
|
|
286
|
+
};
|
|
287
|
+
if (isPrimitiveType(rawType)) {
|
|
288
|
+
const { pack, unpack } = primitivePackers(rawType);
|
|
289
|
+
field.size = typeSizes[rawType];
|
|
290
|
+
field.align = typeAlignments[rawType];
|
|
291
|
+
field.packRaw = pack;
|
|
292
|
+
field.pack = (view, offset, value, input, _packOptions, context) => {
|
|
293
|
+
const lengthValue = options.lengthOf ? context.lengths.get(options.lengthOf) : undefined;
|
|
294
|
+
const packedValue = options.packTransform ? options.packTransform(value) : lengthValue ?? value;
|
|
295
|
+
pack(view, offset, packedValue);
|
|
296
|
+
};
|
|
297
|
+
field.unpack = (view, offset) => {
|
|
298
|
+
const value = unpack(view, offset);
|
|
299
|
+
return options.unpackTransform ? options.unpackTransform(value) : value;
|
|
300
|
+
};
|
|
301
|
+
return field;
|
|
302
|
+
}
|
|
303
|
+
if (rawType === "char*" || rawType === "cstring") {
|
|
304
|
+
field.size = pointerSize;
|
|
305
|
+
field.align = pointerSize;
|
|
306
|
+
field.deferredUnpack = rawType === "char*";
|
|
307
|
+
field.pack = (view, offset, value, _input, _packOptions, context) => {
|
|
308
|
+
if (!value) {
|
|
309
|
+
packPointer(view, offset, null);
|
|
310
|
+
context.lengths.set(name, 0);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
const buffer = rawType === "cstring" ? encoder.encode(`${value}\x00`).buffer : encoder.encode(value).buffer;
|
|
314
|
+
context.subBuffers.push(buffer);
|
|
315
|
+
context.lengths.set(name, rawType === "cstring" ? buffer.byteLength - 1 : buffer.byteLength);
|
|
316
|
+
packPointer(view, offset, ptr(buffer));
|
|
317
|
+
};
|
|
318
|
+
field.unpack = (view, offset, result) => {
|
|
319
|
+
const pointer = unpackPointer(view, offset);
|
|
320
|
+
if (!pointer) {
|
|
321
|
+
return rawType === "char*" && field.lengthField == null ? 0 : null;
|
|
322
|
+
}
|
|
323
|
+
const length = Number(result[field.lengthField?.name] ?? 0);
|
|
324
|
+
if (rawType === "char*" && length > 0) {
|
|
325
|
+
return decoder.decode(toArrayBuffer(pointer, 0, length));
|
|
326
|
+
}
|
|
327
|
+
return pointer;
|
|
328
|
+
};
|
|
329
|
+
return field;
|
|
330
|
+
}
|
|
331
|
+
if (isEnum(rawType)) {
|
|
332
|
+
const { pack, unpack } = primitivePackers(rawType.type);
|
|
333
|
+
field.size = typeSizes[rawType.type];
|
|
334
|
+
field.align = typeAlignments[rawType.type];
|
|
335
|
+
field.packRaw = pack;
|
|
336
|
+
field.pack = (view, offset, value) => pack(view, offset, rawType.to(value ?? field.default));
|
|
337
|
+
field.unpack = (view, offset) => rawType.from(unpack(view, offset));
|
|
338
|
+
return field;
|
|
339
|
+
}
|
|
340
|
+
if (isStruct(rawType)) {
|
|
341
|
+
field.size = rawType.size;
|
|
342
|
+
field.align = rawType.align;
|
|
343
|
+
field.pack = (view, offset, value, _input, packOptions) => rawType.packInto(value, view, offset, packOptions);
|
|
344
|
+
field.unpack = (view, offset) => rawType.unpack(view.buffer.slice(offset, offset + rawType.size));
|
|
345
|
+
return field;
|
|
346
|
+
}
|
|
347
|
+
if (Array.isArray(rawType) && rawType.length === 1) {
|
|
348
|
+
const elementType = rawType[0];
|
|
349
|
+
field.size = pointerSize;
|
|
350
|
+
field.align = pointerSize;
|
|
351
|
+
field.arrayElementType = elementType;
|
|
352
|
+
field.elementSize = isPrimitiveType(elementType) ? typeSizes[elementType] : elementType.size;
|
|
353
|
+
field.deferredUnpack = true;
|
|
354
|
+
field.pack = (view, offset, value, _input, packOptions, context) => {
|
|
355
|
+
const values = [...value ?? []];
|
|
356
|
+
context.lengths.set(name, values.length);
|
|
357
|
+
if (values.length === 0) {
|
|
358
|
+
packPointer(view, offset, null);
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
const buffer = new ArrayBuffer(values.length * field.elementSize);
|
|
362
|
+
const arrayView = new DataView(buffer);
|
|
363
|
+
const { pack } = isPrimitiveType(elementType) ? primitivePackers(elementType) : { pack: elementType.packInto };
|
|
364
|
+
values.forEach((item, index) => pack(arrayView, index * field.elementSize, item, item, packOptions));
|
|
365
|
+
context.subBuffers.push(buffer);
|
|
366
|
+
packPointer(view, offset, ptr(buffer));
|
|
367
|
+
};
|
|
368
|
+
field.unpack = (view, offset, result) => {
|
|
369
|
+
const pointer = unpackPointer(view, offset);
|
|
370
|
+
const length = Number(result[field.lengthField?.name] ?? 0);
|
|
371
|
+
if (!pointer || length === 0) {
|
|
372
|
+
return [];
|
|
373
|
+
}
|
|
374
|
+
const buffer = toArrayBuffer(pointer, 0, length * field.elementSize);
|
|
375
|
+
const arrayView = new DataView(buffer);
|
|
376
|
+
if (isPrimitiveType(elementType)) {
|
|
377
|
+
const { unpack } = primitivePackers(elementType);
|
|
378
|
+
return Array.from({ length }, (_, index) => unpack(arrayView, index * field.elementSize));
|
|
379
|
+
}
|
|
380
|
+
return Array.from({ length }, (_, index) => elementType.unpack(buffer.slice(index * field.elementSize, (index + 1) * field.elementSize)));
|
|
381
|
+
};
|
|
382
|
+
return field;
|
|
383
|
+
}
|
|
384
|
+
throw new Error(`Unsupported struct field type for ${name}: ${String(rawType)}`);
|
|
385
|
+
}
|
|
386
|
+
export {
|
|
387
|
+
pointerSize,
|
|
388
|
+
packObjectArray,
|
|
389
|
+
objectPtr,
|
|
390
|
+
defineStruct,
|
|
391
|
+
defineEnum,
|
|
392
|
+
allocStruct
|
|
393
|
+
};
|
|
394
|
+
|
|
395
|
+
//# debugId=D7B4DD456E2CCCA064756E2164756E21
|
|
396
|
+
//# sourceMappingURL=node22-bun-ffi-structs-ha8fmzzb.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/platform/node22-bun-ffi-structs.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"// @ts-nocheck\nimport { ptr, toArrayBuffer } from \"./ffi.js\"\n\nexport const pointerSize = process.arch === \"x64\" || process.arch === \"arm64\" ? 8 : 4\n\nconst typeSizes = {\n u8: 1,\n bool_u8: 1,\n bool_u32: 4,\n u16: 2,\n i16: 2,\n u32: 4,\n i32: 4,\n u64: 8,\n f32: 4,\n f64: 8,\n pointer: pointerSize,\n}\n\nconst typeAlignments = { ...typeSizes }\nconst primitiveKeys = Object.keys(typeSizes)\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nfunction alignOffset(offset: number, align: number): number {\n return (offset + (align - 1)) & ~(align - 1)\n}\n\nfunction isPrimitiveType(type: unknown): boolean {\n return typeof type === \"string\" && primitiveKeys.includes(type)\n}\n\nfunction isEnum(type: unknown): boolean {\n return typeof type === \"object\" && type !== null && type.__type === \"enum\"\n}\n\nfunction isStruct(type: unknown): boolean {\n return typeof type === \"object\" && type !== null && type.__type === \"struct\"\n}\n\nfunction primitivePackers(type: string) {\n switch (type) {\n case \"u8\":\n return {\n pack: (view: DataView, offset: number, value: number) => view.setUint8(offset, value ?? 0),\n unpack: (view: DataView, offset: number) => view.getUint8(offset),\n }\n case \"bool_u8\":\n return {\n pack: (view: DataView, offset: number, value: boolean) => view.setUint8(offset, value ? 1 : 0),\n unpack: (view: DataView, offset: number) => Boolean(view.getUint8(offset)),\n }\n case \"bool_u32\":\n return {\n pack: (view: DataView, offset: number, value: boolean) => view.setUint32(offset, value ? 1 : 0, true),\n unpack: (view: DataView, offset: number) => Boolean(view.getUint32(offset, true)),\n }\n case \"u16\":\n return {\n pack: (view: DataView, offset: number, value: number) => view.setUint16(offset, value ?? 0, true),\n unpack: (view: DataView, offset: number) => view.getUint16(offset, true),\n }\n case \"i16\":\n return {\n pack: (view: DataView, offset: number, value: number) => view.setInt16(offset, value ?? 0, true),\n unpack: (view: DataView, offset: number) => view.getInt16(offset, true),\n }\n case \"u32\":\n return {\n pack: (view: DataView, offset: number, value: number) => view.setUint32(offset, value ?? 0, true),\n unpack: (view: DataView, offset: number) => view.getUint32(offset, true),\n }\n case \"i32\":\n return {\n pack: (view: DataView, offset: number, value: number) => view.setInt32(offset, value ?? 0, true),\n unpack: (view: DataView, offset: number) => view.getInt32(offset, true),\n }\n case \"u64\":\n return {\n pack: (view: DataView, offset: number, value: bigint | number) =>\n view.setBigUint64(offset, BigInt(value ?? 0), true),\n unpack: (view: DataView, offset: number) => view.getBigUint64(offset, true),\n }\n case \"f32\":\n return {\n pack: (view: DataView, offset: number, value: number) => view.setFloat32(offset, value ?? 0, true),\n unpack: (view: DataView, offset: number) => view.getFloat32(offset, true),\n }\n case \"f64\":\n return {\n pack: (view: DataView, offset: number, value: number) => view.setFloat64(offset, value ?? 0, true),\n unpack: (view: DataView, offset: number) => view.getFloat64(offset, true),\n }\n case \"pointer\":\n return {\n pack: (view: DataView, offset: number, value: bigint | number | null) => {\n if (pointerSize === 8) {\n view.setBigUint64(offset, value == null ? 0n : BigInt(value), true)\n } else {\n view.setUint32(offset, value == null ? 0 : Number(value), true)\n }\n },\n unpack: (view: DataView, offset: number) => {\n const value = pointerSize === 8 ? view.getBigUint64(offset, true) : BigInt(view.getUint32(offset, true))\n return Number(value)\n },\n }\n default:\n throw new Error(`Unsupported primitive type: ${type}`)\n }\n}\n\nconst { pack: packPointer, unpack: unpackPointer } = primitivePackers(\"pointer\")\n\nexport function defineEnum(mapping: Record<string, number>, base = \"u32\") {\n const reverse = Object.fromEntries(Object.entries(mapping).map(([key, value]) => [value, key]))\n\n return {\n __type: \"enum\",\n type: base,\n enum: mapping,\n to(value: string | number) {\n if (typeof value === \"number\") {\n return value\n }\n\n if (Object.hasOwn(mapping, value)) {\n return mapping[value]\n }\n\n throw new TypeError(`Invalid enum value: ${value}`)\n },\n from(value: number | bigint) {\n const key = reverse[Number(value)]\n if (key == null) {\n throw new TypeError(`Invalid enum value: ${String(value)}`)\n }\n return key\n },\n }\n}\n\nexport function objectPtr() {\n return { __type: \"objectPointer\" }\n}\n\nexport function packObjectArray(values: Array<{ ptr?: number | bigint | null } | null>): DataView {\n const buffer = new ArrayBuffer(values.length * pointerSize)\n const view = new DataView(buffer)\n\n for (let i = 0; i < values.length; i++) {\n packPointer(view, i * pointerSize, values[i]?.ptr ?? null)\n }\n\n return view\n}\n\nexport function allocStruct(structDef: any, options?: { lengths?: Record<string, number> }) {\n const buffer = new ArrayBuffer(structDef.size)\n const view = new DataView(buffer)\n const result: { buffer: ArrayBuffer; view: DataView; subBuffers?: Record<string, ArrayBuffer> } = { buffer, view }\n\n if (!options?.lengths) {\n return result\n }\n\n const subBuffers: Record<string, ArrayBuffer> = {}\n for (const [fieldName, length] of Object.entries(options.lengths)) {\n const arrayMeta = structDef.arrayFields.get(fieldName)\n if (!arrayMeta) {\n throw new Error(`Field '${fieldName}' is not an array field with a lengthOf field`)\n }\n\n const subBuffer = new ArrayBuffer(length * arrayMeta.elementSize)\n subBuffers[fieldName] = subBuffer\n packPointer(view, arrayMeta.arrayOffset, length > 0 ? ptr(subBuffer) : null)\n arrayMeta.lengthPack(view, arrayMeta.lengthOffset, length)\n }\n\n result.subBuffers = subBuffers\n return result\n}\n\nexport function defineStruct(fields: any[], structDefOptions: any = {}) {\n const layout: any[] = []\n const lengthOfFields = new Map<string, any>()\n const arrayFields = new Map<string, any>()\n let offset = 0\n let maxAlign = 1\n\n for (const [name, rawType, options = {}] of fields) {\n if (options.condition && !options.condition()) {\n continue\n }\n\n const field = buildField(name, rawType, options)\n offset = alignOffset(offset, field.align)\n field.offset = offset\n layout.push(field)\n offset += field.size\n maxAlign = Math.max(maxAlign, field.align)\n\n if (options.lengthOf) {\n lengthOfFields.set(options.lengthOf, field)\n }\n\n if (field.arrayElementType) {\n arrayFields.set(name, {\n elementSize: field.elementSize,\n arrayOffset: field.offset,\n lengthOffset: 0,\n lengthPack: primitivePackers(\"u32\").pack,\n })\n }\n }\n\n const totalSize = alignOffset(offset, maxAlign)\n\n for (const [arrayName, lengthField] of lengthOfFields) {\n const field = layout.find((candidate) => candidate.name === arrayName)\n if (field) {\n field.lengthField = lengthField\n }\n\n const arrayMeta = arrayFields.get(arrayName)\n if (arrayMeta) {\n arrayMeta.lengthOffset = lengthField.offset\n arrayMeta.lengthPack = lengthField.packRaw\n }\n }\n\n const structDef = {\n __type: \"struct\",\n size: totalSize,\n align: maxAlign,\n layoutByName: new Map(layout.map((field) => [field.name, field])),\n arrayFields,\n pack(value: any, options?: any) {\n const buffer = new ArrayBuffer(totalSize)\n const view = new DataView(buffer)\n const mappedValue = structDefOptions.mapValue ? structDefOptions.mapValue(value) : value\n const context = { lengths: new Map<string, number>(), subBuffers: [] as ArrayBuffer[] }\n\n for (const field of layout) {\n const fieldValue = mappedValue[field.name] ?? field.default\n field.pack(view, field.offset, fieldValue, mappedValue, options, context)\n }\n\n if (context.subBuffers.length > 0) {\n Object.defineProperty(buffer, \"__opentuiSubBuffers\", { value: context.subBuffers })\n }\n\n return buffer\n },\n packInto(value: any, view: DataView, baseOffset: number, options?: any) {\n const mappedValue = structDefOptions.mapValue ? structDefOptions.mapValue(value) : value\n const context = { lengths: new Map<string, number>(), subBuffers: [] as ArrayBuffer[] }\n\n for (const field of layout) {\n const fieldValue = mappedValue[field.name] ?? field.default\n field.pack(view, baseOffset + field.offset, fieldValue, mappedValue, options, context)\n }\n },\n unpack(buffer: ArrayBuffer) {\n if (buffer.byteLength < totalSize) {\n throw new Error(`Buffer size (${buffer.byteLength}) is smaller than struct size (${totalSize}) for unpacking.`)\n }\n\n const view = new DataView(buffer)\n const result: Record<string, unknown> = structDefOptions.default ? { ...structDefOptions.default } : {}\n\n for (const field of layout) {\n if (!field.deferredUnpack) {\n result[field.name] = field.unpack(view, field.offset, result)\n }\n }\n\n for (const field of layout) {\n if (field.deferredUnpack) {\n result[field.name] = field.unpack(view, field.offset, result)\n }\n }\n\n return structDefOptions.reduceValue ? structDefOptions.reduceValue(result) : result\n },\n packList(values: any[], options?: any) {\n const buffer = new ArrayBuffer(totalSize * values.length)\n const view = new DataView(buffer)\n const subBuffers: ArrayBuffer[] = []\n\n values.forEach((value, index) => {\n const mappedValue = structDefOptions.mapValue ? structDefOptions.mapValue(value) : value\n const context = { lengths: new Map<string, number>(), subBuffers }\n for (const field of layout) {\n const fieldValue = mappedValue[field.name] ?? field.default\n field.pack(view, index * totalSize + field.offset, fieldValue, mappedValue, options, context)\n }\n })\n\n if (subBuffers.length > 0) {\n Object.defineProperty(buffer, \"__opentuiSubBuffers\", { value: subBuffers })\n }\n\n return buffer\n },\n unpackList(buffer: ArrayBuffer, count: number) {\n const result = []\n for (let index = 0; index < count; index++) {\n result.push(structDef.unpack(buffer.slice(index * totalSize, (index + 1) * totalSize)))\n }\n return result\n },\n }\n\n return structDef\n}\n\nfunction buildField(name: string, rawType: any, options: any) {\n const field: any = {\n name,\n type: rawType,\n default: options.default,\n optional: options.optional || options.default !== undefined || options.lengthOf !== undefined,\n deferredUnpack: false,\n }\n\n if (isPrimitiveType(rawType)) {\n const { pack, unpack } = primitivePackers(rawType)\n field.size = typeSizes[rawType]\n field.align = typeAlignments[rawType]\n field.packRaw = pack\n field.pack = (view: DataView, offset: number, value: unknown, input: any, _packOptions: any, context: any) => {\n const lengthValue = options.lengthOf ? context.lengths.get(options.lengthOf) : undefined\n const packedValue = options.packTransform ? options.packTransform(value) : (lengthValue ?? value)\n pack(view, offset, packedValue)\n }\n field.unpack = (view: DataView, offset: number) => {\n const value = unpack(view, offset)\n return options.unpackTransform ? options.unpackTransform(value) : value\n }\n return field\n }\n\n if (rawType === \"char*\" || rawType === \"cstring\") {\n field.size = pointerSize\n field.align = pointerSize\n field.deferredUnpack = rawType === \"char*\"\n field.pack = (\n view: DataView,\n offset: number,\n value: string | null | undefined,\n _input: any,\n _packOptions: any,\n context: any,\n ) => {\n if (!value) {\n packPointer(view, offset, null)\n context.lengths.set(name, 0)\n return\n }\n\n const buffer = rawType === \"cstring\" ? encoder.encode(`${value}\\0`).buffer : encoder.encode(value).buffer\n context.subBuffers.push(buffer)\n context.lengths.set(name, rawType === \"cstring\" ? buffer.byteLength - 1 : buffer.byteLength)\n packPointer(view, offset, ptr(buffer))\n }\n field.unpack = (view: DataView, offset: number, result: Record<string, unknown>) => {\n const pointer = unpackPointer(view, offset)\n if (!pointer) {\n return rawType === \"char*\" && field.lengthField == null ? 0 : null\n }\n\n const length = Number(result[field.lengthField?.name] ?? 0)\n if (rawType === \"char*\" && length > 0) {\n return decoder.decode(toArrayBuffer(pointer, 0, length))\n }\n\n return pointer\n }\n return field\n }\n\n if (isEnum(rawType)) {\n const { pack, unpack } = primitivePackers(rawType.type)\n field.size = typeSizes[rawType.type]\n field.align = typeAlignments[rawType.type]\n field.packRaw = pack\n field.pack = (view: DataView, offset: number, value: unknown) =>\n pack(view, offset, rawType.to(value ?? field.default))\n field.unpack = (view: DataView, offset: number) => rawType.from(unpack(view, offset))\n return field\n }\n\n if (isStruct(rawType)) {\n field.size = rawType.size\n field.align = rawType.align\n field.pack = (view: DataView, offset: number, value: unknown, _input: any, packOptions: any) =>\n rawType.packInto(value, view, offset, packOptions)\n field.unpack = (view: DataView, offset: number) => rawType.unpack(view.buffer.slice(offset, offset + rawType.size))\n return field\n }\n\n if (Array.isArray(rawType) && rawType.length === 1) {\n const elementType = rawType[0]\n field.size = pointerSize\n field.align = pointerSize\n field.arrayElementType = elementType\n field.elementSize = isPrimitiveType(elementType) ? typeSizes[elementType] : elementType.size\n field.deferredUnpack = true\n field.pack = (\n view: DataView,\n offset: number,\n value: Iterable<unknown> | null | undefined,\n _input: any,\n packOptions: any,\n context: any,\n ) => {\n const values = [...(value ?? [])]\n context.lengths.set(name, values.length)\n\n if (values.length === 0) {\n packPointer(view, offset, null)\n return\n }\n\n const buffer = new ArrayBuffer(values.length * field.elementSize)\n const arrayView = new DataView(buffer)\n const { pack } = isPrimitiveType(elementType) ? primitivePackers(elementType) : { pack: elementType.packInto }\n values.forEach((item, index) => pack(arrayView, index * field.elementSize, item, item, packOptions))\n context.subBuffers.push(buffer)\n packPointer(view, offset, ptr(buffer))\n }\n field.unpack = (view: DataView, offset: number, result: Record<string, unknown>) => {\n const pointer = unpackPointer(view, offset)\n const length = Number(result[field.lengthField?.name] ?? 0)\n if (!pointer || length === 0) {\n return []\n }\n\n const buffer = toArrayBuffer(pointer, 0, length * field.elementSize)\n const arrayView = new DataView(buffer)\n if (isPrimitiveType(elementType)) {\n const { unpack } = primitivePackers(elementType)\n return Array.from({ length }, (_, index) => unpack(arrayView, index * field.elementSize))\n }\n\n return Array.from({ length }, (_, index) =>\n elementType.unpack(buffer.slice(index * field.elementSize, (index + 1) * field.elementSize)),\n )\n }\n return field\n }\n\n throw new Error(`Unsupported struct field type for ${name}: ${String(rawType)}`)\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "D7B4DD456E2CCCA064756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.2.15",
|
|
8
8
|
"description": "OpenTUI is a TypeScript library on a native Zig core for building terminal user interfaces (TUIs)",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -18,11 +18,6 @@
|
|
|
18
18
|
"require": "./index.js",
|
|
19
19
|
"types": "./index.d.ts"
|
|
20
20
|
},
|
|
21
|
-
"./3d": {
|
|
22
|
-
"import": "./3d.js",
|
|
23
|
-
"require": "./3d.js",
|
|
24
|
-
"types": "./3d.d.ts"
|
|
25
|
-
},
|
|
26
21
|
"./testing": {
|
|
27
22
|
"import": "./testing.js",
|
|
28
23
|
"require": "./testing.js",
|
|
@@ -38,6 +33,16 @@
|
|
|
38
33
|
"require": "./runtime-plugin-support.js",
|
|
39
34
|
"types": "./runtime-plugin-support.d.ts"
|
|
40
35
|
},
|
|
36
|
+
"./runtime-plugin-support/configure": {
|
|
37
|
+
"import": "./runtime-plugin-support-configure.js",
|
|
38
|
+
"require": "./runtime-plugin-support-configure.js",
|
|
39
|
+
"types": "./runtime-plugin-support-configure.d.ts"
|
|
40
|
+
},
|
|
41
|
+
"./tree-sitter/update-assets": {
|
|
42
|
+
"import": "./lib/tree-sitter/update-assets.js",
|
|
43
|
+
"require": "./lib/tree-sitter/update-assets.js",
|
|
44
|
+
"types": "./lib/tree-sitter/update-assets.d.ts"
|
|
45
|
+
},
|
|
41
46
|
"./parser.worker": {
|
|
42
47
|
"import": "./lib/tree-sitter/parser.worker.js",
|
|
43
48
|
"require": "./lib/tree-sitter/parser.worker.js",
|
|
@@ -45,18 +50,18 @@
|
|
|
45
50
|
}
|
|
46
51
|
},
|
|
47
52
|
"dependencies": {
|
|
48
|
-
"bun-ffi-structs": "0.
|
|
49
|
-
"diff": "
|
|
50
|
-
"jimp": "1.6.0",
|
|
53
|
+
"bun-ffi-structs": "0.2.2",
|
|
54
|
+
"diff": "9.0.0",
|
|
51
55
|
"marked": "17.0.1",
|
|
52
|
-
"string-width": "
|
|
53
|
-
"strip-ansi": "7.2
|
|
56
|
+
"string-width": "7.2.0",
|
|
57
|
+
"strip-ansi": "7.1.2",
|
|
54
58
|
"yoga-layout": "3.2.1"
|
|
55
59
|
},
|
|
56
60
|
"devDependencies": {
|
|
61
|
+
"@jitl/opentui-keymap": "workspace:*",
|
|
57
62
|
"@types/bun": "latest",
|
|
58
63
|
"@types/node": "^24.0.0",
|
|
59
|
-
"
|
|
64
|
+
"commander": "^13.1.0",
|
|
60
65
|
"typescript": "^5",
|
|
61
66
|
"web-tree-sitter": "0.25.10"
|
|
62
67
|
},
|
|
@@ -64,17 +69,13 @@
|
|
|
64
69
|
"web-tree-sitter": "0.25.10"
|
|
65
70
|
},
|
|
66
71
|
"optionalDependencies": {
|
|
67
|
-
"@
|
|
68
|
-
"@jitl/opentui-core-darwin-arm64": "0.
|
|
69
|
-
"@jitl/opentui-core-
|
|
70
|
-
"@jitl/opentui-core-linux-arm64": "0.
|
|
71
|
-
"@jitl/opentui-core-
|
|
72
|
-
"@jitl/opentui-core-win32-arm64": "0.
|
|
73
|
-
"@jitl/opentui-core-win32-x64": "0.1.97",
|
|
74
|
-
"bun-webgpu": "0.1.5",
|
|
72
|
+
"@jitl/opentui-core-darwin-x64": "0.2.15",
|
|
73
|
+
"@jitl/opentui-core-darwin-arm64": "0.2.15",
|
|
74
|
+
"@jitl/opentui-core-linux-x64": "0.2.15",
|
|
75
|
+
"@jitl/opentui-core-linux-arm64": "0.2.15",
|
|
76
|
+
"@jitl/opentui-core-win32-x64": "0.2.15",
|
|
77
|
+
"@jitl/opentui-core-win32-arm64": "0.2.15",
|
|
75
78
|
"koffi": "2.15.6",
|
|
76
|
-
"planck": "^1.4.2",
|
|
77
|
-
"three": "0.177.0",
|
|
78
79
|
"unsafe-pointer": "0.2.0"
|
|
79
80
|
}
|
|
80
81
|
}
|