@xincli/opentui-core 0.4.6 → 0.4.7
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/NativeSpanFeed.d.ts +52 -0
- package/README.md +0 -0
- package/Renderable.d.ts +346 -0
- package/animation/Timeline.d.ts +126 -0
- package/ansi.d.ts +17 -0
- package/audio.d.ts +89 -0
- package/buffer.d.ts +113 -0
- package/console.d.ts +146 -0
- package/edit-buffer.d.ts +97 -0
- package/editor-view.d.ts +72 -0
- package/index-m1y9e40w.js +10045 -0
- package/index-m1y9e40w.js.map +32 -0
- package/index-sqk4ajdf.js +16121 -0
- package/index-sqk4ajdf.js.map +58 -0
- package/index.d.ts +24 -0
- package/index.js +11709 -0
- package/index.js.map +35 -0
- package/lib/KeyHandler.d.ts +61 -0
- package/lib/RGBA.d.ts +42 -0
- package/lib/ascii.font.d.ts +508 -0
- package/lib/border.d.ts +51 -0
- package/lib/bunfs.d.ts +7 -0
- package/lib/clipboard.d.ts +15 -0
- package/lib/clock.d.ts +15 -0
- package/lib/data-paths.d.ts +26 -0
- package/lib/debounce.d.ts +42 -0
- package/lib/detect-links.d.ts +6 -0
- package/lib/env.d.ts +42 -0
- package/lib/extmarks-history.d.ts +17 -0
- package/lib/extmarks.d.ts +90 -0
- package/lib/hast-styled-text.d.ts +17 -0
- package/lib/index.d.ts +22 -0
- package/lib/keybinding.internal.d.ts +33 -0
- package/lib/objects-in-viewport.d.ts +24 -0
- package/lib/output.capture.d.ts +24 -0
- package/lib/parse.keypress-kitty.d.ts +3 -0
- package/lib/parse.keypress.d.ts +27 -0
- package/lib/parse.mouse.d.ts +30 -0
- package/lib/paste.d.ts +7 -0
- package/lib/queue.d.ts +15 -0
- package/lib/render-geometry.d.ts +8 -0
- package/lib/renderable.validations.d.ts +12 -0
- package/lib/scroll-acceleration.d.ts +43 -0
- package/lib/selection.d.ts +64 -0
- package/lib/singleton.d.ts +8 -0
- package/lib/stdin-parser.d.ts +90 -0
- package/lib/styled-text.d.ts +63 -0
- package/lib/terminal-capability-detection.d.ts +32 -0
- package/lib/terminal-palette.d.ts +65 -0
- package/lib/tree-sitter/assets/update.d.ts +12 -0
- package/lib/tree-sitter/client.d.ts +65 -0
- package/lib/tree-sitter/default-parsers.d.ts +2 -0
- package/lib/tree-sitter/download-utils.d.ts +21 -0
- package/lib/tree-sitter/index.d.ts +7 -0
- package/lib/tree-sitter/parser.worker.d.ts +1 -0
- package/lib/tree-sitter/parsers-config.d.ts +53 -0
- package/lib/tree-sitter/resolve-ft.d.ts +5 -0
- package/lib/tree-sitter/types.d.ts +185 -0
- package/lib/tree-sitter/update-assets.d.ts +3 -0
- package/lib/tree-sitter/update-assets.js +379 -0
- package/lib/tree-sitter/update-assets.js.map +12 -0
- package/lib/tree-sitter-styled-text.d.ts +16 -0
- package/lib/validate-dir-name.d.ts +1 -0
- package/lib/yoga.options.d.ts +32 -0
- package/native-event-worker-repro.worker.d.ts +1 -0
- package/package.json +52 -74
- package/parser.worker.js +1399 -0
- package/parser.worker.js.map +20 -0
- package/platform/ffi.d.ts +129 -0
- package/platform/runtime.d.ts +14 -0
- package/platform/test.d.ts +12 -0
- package/platform/worker.d.ts +26 -0
- package/platform/worker.node-test.d.ts +1 -0
- package/plugins/core-slot.d.ts +72 -0
- package/plugins/registry.d.ts +42 -0
- package/plugins/types.d.ts +34 -0
- package/post/effects.d.ts +147 -0
- package/post/filters.d.ts +65 -0
- package/post/matrices.d.ts +20 -0
- package/renderables/ASCIIFont.d.ts +52 -0
- package/renderables/Box.d.ts +85 -0
- package/renderables/Code.d.ts +97 -0
- package/renderables/Diff.d.ts +147 -0
- package/renderables/EditBufferRenderable.d.ts +238 -0
- package/renderables/FrameBuffer.d.ts +16 -0
- package/renderables/Input.d.ts +72 -0
- package/renderables/LineNumberRenderable.d.ts +78 -0
- package/renderables/Markdown.d.ts +255 -0
- package/renderables/ScrollBar.d.ts +77 -0
- package/renderables/ScrollBox.d.ts +128 -0
- package/renderables/Select.d.ts +122 -0
- package/renderables/Slider.d.ts +47 -0
- package/renderables/TabSelect.d.ts +98 -0
- package/renderables/Text.d.ts +36 -0
- package/renderables/TextBufferRenderable.d.ts +107 -0
- package/renderables/TextNode.d.ts +92 -0
- package/renderables/TextTable.d.ts +154 -0
- package/renderables/Textarea.d.ts +65 -0
- package/renderables/TimeToFirstDraw.d.ts +24 -0
- package/renderables/__tests__/renderable-test-utils.d.ts +12 -0
- package/renderables/composition/VRenderable.d.ts +16 -0
- package/renderables/composition/constructs.d.ts +35 -0
- package/renderables/composition/vnode.d.ts +46 -0
- package/renderables/index.d.ts +23 -0
- package/renderables/markdown-parser.d.ts +11 -0
- package/renderer-theme-mode.d.ts +29 -0
- package/renderer.d.ts +601 -0
- package/runtime-plugin-support-configure.d.ts +4 -0
- package/runtime-plugin-support-configure.js +36 -0
- package/runtime-plugin-support-configure.js.map +1 -0
- package/runtime-plugin-support-configure.node.js +15 -0
- package/runtime-plugin-support.d.ts +3 -0
- package/runtime-plugin-support.js +5 -0
- package/runtime-plugin-support.js.map +1 -0
- package/runtime-plugin-support.node.js +15 -0
- package/runtime-plugin.d.ts +16 -0
- package/runtime-plugin.js +473 -0
- package/runtime-plugin.js.map +1 -0
- package/runtime-plugin.node.js +15 -0
- package/syntax-style.d.ts +61 -0
- package/testing/bun-test-node.d.ts +87 -0
- package/testing/manual-clock.d.ts +17 -0
- package/testing/mock-keys.d.ts +81 -0
- package/testing/mock-mouse.d.ts +38 -0
- package/testing/mock-tree-sitter-client.d.ts +27 -0
- package/testing/spy.d.ts +7 -0
- package/testing/terminal-capabilities.d.ts +7 -0
- package/testing/test-recorder.d.ts +61 -0
- package/testing/test-renderer.d.ts +54 -0
- package/testing/test-streams.d.ts +12 -0
- package/testing.d.ts +8 -0
- package/testing.js +1004 -0
- package/testing.js.map +18 -0
- package/tests/yoga-upstream/tools/MeasureCounter.d.ts +16 -0
- package/tests/yoga-upstream/tools/utils.d.ts +11 -0
- package/text-buffer-view.d.ts +42 -0
- package/text-buffer.d.ts +66 -0
- package/types.d.ts +175 -0
- package/utils.d.ts +14 -0
- package/yoga.d.ts +437 -0
- package/yoga.js +193 -0
- package/yoga.js.map +9 -0
- package/zig-structs.d.ts +256 -0
- package/zig.d.ts +496 -0
- package/dev/keypress-debug-renderer.ts +0 -148
- package/dev/keypress-debug.ts +0 -43
- package/dev/print-env-vars.ts +0 -32
- package/dev/test-tmux-graphics-334.sh +0 -68
- package/dev/test-tmux-theme-queries.sh +0 -151
- package/dev/thai-debug-test.ts +0 -68
- package/dev/theme-mode.ts +0 -290
- package/docs/development.md +0 -144
- package/prebuilt/aarch64-android/libopentui.so +0 -0
- package/scripts/build-android.ts +0 -226
- package/scripts/build-native-termux.sh +0 -525
- package/scripts/build.ts +0 -530
- package/scripts/dist-test.ts +0 -312
- package/scripts/package-prebuilt.ts +0 -110
- package/scripts/publish.ts +0 -60
- package/scripts/test-node-hook.mjs +0 -16
- package/scripts/test-node.ts +0 -241
- package/scripts/vendor-deps.sh +0 -73
- package/src/NativeSpanFeed.ts +0 -375
- package/src/Renderable.ts +0 -1878
- package/src/__snapshots__/buffer.test.ts.snap +0 -28
- package/src/animation/Timeline.test.ts +0 -2709
- package/src/animation/Timeline.ts +0 -598
- package/src/ansi.ts +0 -22
- package/src/audio.ts +0 -479
- package/src/benchmark/attenuation-benchmark.ts +0 -81
- package/src/benchmark/audio-playback-benchmark.ts +0 -344
- package/src/benchmark/box-draw-benchmark.ts +0 -1042
- package/src/benchmark/colormatrix-benchmark.ts +0 -123
- package/src/benchmark/gain-benchmark.ts +0 -80
- package/src/benchmark/latest-all-bench-run.json +0 -707
- package/src/benchmark/latest-async-bench-run.json +0 -336
- package/src/benchmark/latest-default-bench-run.json +0 -657
- package/src/benchmark/latest-large-bench-run.json +0 -707
- package/src/benchmark/latest-quick-bench-run.json +0 -207
- package/src/benchmark/layout-benchmark.ts +0 -2547
- package/src/benchmark/markdown-benchmark.ts +0 -1796
- package/src/benchmark/native-span-feed-async-benchmark.ts +0 -355
- package/src/benchmark/native-span-feed-benchmark.md +0 -56
- package/src/benchmark/native-span-feed-benchmark.ts +0 -596
- package/src/benchmark/native-span-feed-compare.ts +0 -280
- package/src/benchmark/render-traversal-benchmark.ts +0 -928
- package/src/benchmark/text-buffer-render-benchmark.ts +0 -874
- package/src/benchmark/text-table-benchmark.ts +0 -948
- package/src/buffer.test.ts +0 -292
- package/src/buffer.ts +0 -564
- package/src/console.test.ts +0 -629
- package/src/console.ts +0 -1253
- package/src/edit-buffer.test.ts +0 -1852
- package/src/edit-buffer.ts +0 -417
- package/src/editor-view.test.ts +0 -1056
- package/src/editor-view.ts +0 -290
- package/src/index.ts +0 -25
- package/src/lib/KeyHandler.integration.test.ts +0 -292
- package/src/lib/KeyHandler.stopPropagation.test.ts +0 -289
- package/src/lib/KeyHandler.test.ts +0 -662
- package/src/lib/KeyHandler.ts +0 -222
- package/src/lib/RGBA.test.ts +0 -60
- package/src/lib/RGBA.ts +0 -343
- package/src/lib/ascii.font.ts +0 -330
- package/src/lib/border.test.ts +0 -83
- package/src/lib/border.ts +0 -170
- package/src/lib/bunfs.test.ts +0 -27
- package/src/lib/bunfs.ts +0 -18
- package/src/lib/clipboard.test.ts +0 -63
- package/src/lib/clipboard.ts +0 -41
- package/src/lib/clock.ts +0 -35
- package/src/lib/data-paths.test.ts +0 -133
- package/src/lib/data-paths.ts +0 -109
- package/src/lib/debounce.ts +0 -106
- package/src/lib/detect-links.test.ts +0 -98
- package/src/lib/detect-links.ts +0 -56
- package/src/lib/env.test.ts +0 -228
- package/src/lib/env.ts +0 -209
- package/src/lib/extmarks-history.ts +0 -51
- package/src/lib/extmarks-multiwidth.test.ts +0 -324
- package/src/lib/extmarks.test.ts +0 -3547
- package/src/lib/extmarks.ts +0 -861
- package/src/lib/fonts/block.json +0 -405
- package/src/lib/fonts/grid.json +0 -265
- package/src/lib/fonts/huge.json +0 -741
- package/src/lib/fonts/pallet.json +0 -314
- package/src/lib/fonts/shade.json +0 -591
- package/src/lib/fonts/slick.json +0 -321
- package/src/lib/fonts/tiny.json +0 -69
- package/src/lib/hast-styled-text.ts +0 -59
- package/src/lib/index.ts +0 -22
- package/src/lib/keybinding.internal.test.ts +0 -342
- package/src/lib/keybinding.internal.ts +0 -182
- package/src/lib/objects-in-viewport.test.ts +0 -789
- package/src/lib/objects-in-viewport.ts +0 -153
- package/src/lib/output.capture.ts +0 -58
- package/src/lib/parse.keypress-kitty.protocol.test.ts +0 -347
- package/src/lib/parse.keypress-kitty.test.ts +0 -712
- package/src/lib/parse.keypress-kitty.ts +0 -470
- package/src/lib/parse.keypress.test.ts +0 -2020
- package/src/lib/parse.keypress.ts +0 -480
- package/src/lib/parse.mouse.test.ts +0 -552
- package/src/lib/parse.mouse.ts +0 -232
- package/src/lib/paste.ts +0 -18
- package/src/lib/queue.ts +0 -65
- package/src/lib/render-geometry.ts +0 -36
- package/src/lib/renderable.validations.test.ts +0 -87
- package/src/lib/renderable.validations.ts +0 -83
- package/src/lib/scroll-acceleration.ts +0 -98
- package/src/lib/selection.ts +0 -261
- package/src/lib/singleton.ts +0 -34
- package/src/lib/stdin-parser.test.ts +0 -2439
- package/src/lib/stdin-parser.ts +0 -2007
- package/src/lib/styled-text.ts +0 -178
- package/src/lib/terminal-capability-detection.test.ts +0 -226
- package/src/lib/terminal-capability-detection.ts +0 -98
- package/src/lib/terminal-palette.test.ts +0 -954
- package/src/lib/terminal-palette.ts +0 -441
- package/src/lib/tree-sitter/assets/README.md +0 -119
- package/src/lib/tree-sitter/assets/update.ts +0 -360
- package/src/lib/tree-sitter/assets.d.ts +0 -9
- package/src/lib/tree-sitter/cache.test.ts +0 -291
- package/src/lib/tree-sitter/client.test.ts +0 -1434
- package/src/lib/tree-sitter/client.ts +0 -847
- package/src/lib/tree-sitter/default-parsers.ts +0 -133
- package/src/lib/tree-sitter/download-utils.ts +0 -148
- package/src/lib/tree-sitter/index.ts +0 -75
- package/src/lib/tree-sitter/parser.worker.ts +0 -1098
- package/src/lib/tree-sitter/parsers-config.ts +0 -81
- package/src/lib/tree-sitter/resolve-ft.test.ts +0 -55
- package/src/lib/tree-sitter/resolve-ft.ts +0 -189
- package/src/lib/tree-sitter/types.ts +0 -132
- package/src/lib/tree-sitter/update-assets.ts +0 -10
- package/src/lib/tree-sitter-styled-text.test.ts +0 -1253
- package/src/lib/tree-sitter-styled-text.ts +0 -314
- package/src/lib/validate-dir-name.ts +0 -55
- package/src/lib/yoga.options.test.ts +0 -628
- package/src/lib/yoga.options.ts +0 -346
- package/src/native-event-worker-repro.test.ts +0 -48
- package/src/native-event-worker-repro.worker.ts +0 -9
- package/src/native-handle.test.ts +0 -221
- package/src/platform/ffi.test.ts +0 -516
- package/src/platform/ffi.ts +0 -653
- package/src/platform/runtime.test.ts +0 -52
- package/src/platform/runtime.ts +0 -121
- package/src/platform/test.ts +0 -45
- package/src/platform/worker-handler-cleanup.fixture.ts +0 -12
- package/src/platform/worker-onmessage-startup.fixture.ts +0 -10
- package/src/platform/worker-startup.fixture.ts +0 -9
- package/src/platform/worker.node-test.ts +0 -153
- package/src/platform/worker.ts +0 -425
- package/src/plugins/core-slot.ts +0 -579
- package/src/plugins/registry.ts +0 -402
- package/src/plugins/types.ts +0 -46
- package/src/post/effects.ts +0 -948
- package/src/post/filters.ts +0 -512
- package/src/post/matrices.ts +0 -288
- package/src/renderables/ASCIIFont.ts +0 -219
- package/src/renderables/Box.test.ts +0 -474
- package/src/renderables/Box.ts +0 -353
- package/src/renderables/Code.test.ts +0 -2388
- package/src/renderables/Code.ts +0 -555
- package/src/renderables/Diff.regression.test.ts +0 -381
- package/src/renderables/Diff.test.ts +0 -3212
- package/src/renderables/Diff.ts +0 -1278
- package/src/renderables/EditBufferRenderable.test.ts +0 -288
- package/src/renderables/EditBufferRenderable.ts +0 -1152
- package/src/renderables/FrameBuffer.ts +0 -47
- package/src/renderables/Input.test.ts +0 -1310
- package/src/renderables/Input.ts +0 -273
- package/src/renderables/LineNumberRenderable.ts +0 -725
- package/src/renderables/Markdown.ts +0 -2144
- package/src/renderables/ScrollBar.ts +0 -423
- package/src/renderables/ScrollBox.ts +0 -903
- package/src/renderables/Select.test.ts +0 -1134
- package/src/renderables/Select.ts +0 -535
- package/src/renderables/Slider.test.ts +0 -456
- package/src/renderables/Slider.ts +0 -342
- package/src/renderables/TabSelect.test.ts +0 -238
- package/src/renderables/TabSelect.ts +0 -447
- package/src/renderables/Text.selection-buffer.test.ts +0 -118
- package/src/renderables/Text.test.ts +0 -2662
- package/src/renderables/Text.ts +0 -147
- package/src/renderables/TextBufferRenderable.ts +0 -504
- package/src/renderables/TextNode.test.ts +0 -1137
- package/src/renderables/TextNode.ts +0 -379
- package/src/renderables/TextTable.test.ts +0 -1411
- package/src/renderables/TextTable.ts +0 -1434
- package/src/renderables/Textarea.ts +0 -425
- package/src/renderables/TimeToFirstDraw.ts +0 -89
- package/src/renderables/__snapshots__/Code.test.ts.snap +0 -13
- package/src/renderables/__snapshots__/Diff.test.ts.snap +0 -785
- package/src/renderables/__snapshots__/Text.test.ts.snap +0 -421
- package/src/renderables/__snapshots__/TextTable.test.ts.snap +0 -215
- package/src/renderables/__tests__/Code.test.ts +0 -55
- package/src/renderables/__tests__/LineNumberRenderable.scrollbox-simple.test.ts +0 -144
- package/src/renderables/__tests__/LineNumberRenderable.scrollbox.test.ts +0 -827
- package/src/renderables/__tests__/LineNumberRenderable.test.ts +0 -1906
- package/src/renderables/__tests__/LineNumberRenderable.wrapping.test.ts +0 -85
- package/src/renderables/__tests__/Markdown.code-colors.test.ts +0 -288
- package/src/renderables/__tests__/Markdown.test.ts +0 -4175
- package/src/renderables/__tests__/MultiRenderable.selection.test.ts +0 -87
- package/src/renderables/__tests__/Textarea.buffer.test.ts +0 -683
- package/src/renderables/__tests__/Textarea.destroyed-events.test.ts +0 -675
- package/src/renderables/__tests__/Textarea.editing.test.ts +0 -2120
- package/src/renderables/__tests__/Textarea.error-handling.test.ts +0 -35
- package/src/renderables/__tests__/Textarea.events.test.ts +0 -738
- package/src/renderables/__tests__/Textarea.highlights.test.ts +0 -590
- package/src/renderables/__tests__/Textarea.keybinding.test.ts +0 -3275
- package/src/renderables/__tests__/Textarea.paste.test.ts +0 -357
- package/src/renderables/__tests__/Textarea.rendering.test.ts +0 -1927
- package/src/renderables/__tests__/Textarea.scroll.test.ts +0 -733
- package/src/renderables/__tests__/Textarea.selection.test.ts +0 -1589
- package/src/renderables/__tests__/Textarea.stress.test.ts +0 -670
- package/src/renderables/__tests__/Textarea.undo-redo.test.ts +0 -383
- package/src/renderables/__tests__/Textarea.visual-lines.test.ts +0 -310
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.code.test.ts.snap +0 -221
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox-simple.test.ts.snap +0 -89
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox.test.ts.snap +0 -457
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.test.ts.snap +0 -158
- package/src/renderables/__tests__/__snapshots__/Textarea.rendering.test.ts.snap +0 -387
- package/src/renderables/__tests__/markdown-parser.test.ts +0 -241
- package/src/renderables/__tests__/renderable-test-utils.ts +0 -60
- package/src/renderables/composition/README.md +0 -8
- package/src/renderables/composition/VRenderable.ts +0 -32
- package/src/renderables/composition/constructs.ts +0 -127
- package/src/renderables/composition/vnode.ts +0 -277
- package/src/renderables/index.ts +0 -23
- package/src/renderables/markdown-parser.ts +0 -79
- package/src/renderer-theme-mode.ts +0 -199
- package/src/renderer.ts +0 -4975
- package/src/runtime-plugin-support-configure.ts +0 -63
- package/src/runtime-plugin-support.ts +0 -13
- package/src/runtime-plugin.ts +0 -626
- package/src/specs/terminal-startup.md +0 -64
- package/src/syntax-style.test.ts +0 -841
- package/src/syntax-style.ts +0 -274
- package/src/testing/README.md +0 -219
- package/src/testing/bun-test-node.ts +0 -880
- package/src/testing/capture-spans.test.ts +0 -216
- package/src/testing/integration.test.ts +0 -276
- package/src/testing/manual-clock.ts +0 -117
- package/src/testing/mock-keys.test.ts +0 -1378
- package/src/testing/mock-keys.ts +0 -457
- package/src/testing/mock-mouse.test.ts +0 -218
- package/src/testing/mock-mouse.ts +0 -247
- package/src/testing/mock-tree-sitter-client.ts +0 -81
- package/src/testing/spy.ts +0 -13
- package/src/testing/terminal-capabilities.ts +0 -47
- package/src/testing/test-recorder.test.ts +0 -410
- package/src/testing/test-recorder.ts +0 -133
- package/src/testing/test-renderer.ts +0 -375
- package/src/testing/test-renderer.wait.test.ts +0 -278
- package/src/testing/test-streams.ts +0 -31
- package/src/testing.ts +0 -9
- package/src/tests/__snapshots__/absolute-positioning.snapshot.test.ts.snap +0 -481
- package/src/tests/__snapshots__/renderable.snapshot.test.ts.snap +0 -19
- package/src/tests/__snapshots__/scrollbox.test.ts.snap +0 -29
- package/src/tests/absolute-positioning.snapshot.test.ts +0 -638
- package/src/tests/allocator-stats.test.ts +0 -53
- package/src/tests/audio.test.ts +0 -303
- package/src/tests/destroy-during-render.test.ts +0 -200
- package/src/tests/destroy-on-exit.fixture.ts +0 -36
- package/src/tests/destroy-on-exit.test.ts +0 -62
- package/src/tests/ffi-borrowed-pointer-callsites.test.ts +0 -153
- package/src/tests/hover-cursor.test.ts +0 -98
- package/src/tests/native-backed-measurement-lifecycle.test.ts +0 -133
- package/src/tests/native-backed-measurement-parity.test.ts +0 -322
- package/src/tests/native-span-feed-async.test.ts +0 -173
- package/src/tests/native-span-feed-close.test.ts +0 -120
- package/src/tests/native-span-feed-coverage.test.ts +0 -227
- package/src/tests/native-span-feed-edge-cases.test.ts +0 -384
- package/src/tests/native-span-feed-use-after-free.test.ts +0 -45
- package/src/tests/opacity.test.ts +0 -123
- package/src/tests/renderable.snapshot.test.ts +0 -524
- package/src/tests/renderable.test.ts +0 -1851
- package/src/tests/renderer.clock.test.ts +0 -270
- package/src/tests/renderer.console-startup.test.ts +0 -2151
- package/src/tests/renderer.control.test.ts +0 -458
- package/src/tests/renderer.core-slot-binding.test.ts +0 -962
- package/src/tests/renderer.cursor.test.ts +0 -26
- package/src/tests/renderer.custom-stdout.test.ts +0 -1112
- package/src/tests/renderer.destroy-during-render.test.ts +0 -147
- package/src/tests/renderer.focus-restore.test.ts +0 -257
- package/src/tests/renderer.focus.test.ts +0 -329
- package/src/tests/renderer.idle.test.ts +0 -219
- package/src/tests/renderer.input.test.ts +0 -2615
- package/src/tests/renderer.kitty-flags.test.ts +0 -195
- package/src/tests/renderer.lifecycle.test.ts +0 -34
- package/src/tests/renderer.mouse.test.ts +0 -1315
- package/src/tests/renderer.notifications.test.ts +0 -27
- package/src/tests/renderer.palette.test.ts +0 -1199
- package/src/tests/renderer.remote.test.ts +0 -247
- package/src/tests/renderer.render-stats.test.ts +0 -146
- package/src/tests/renderer.scrollback-surface.test.ts +0 -474
- package/src/tests/renderer.selection.test.ts +0 -138
- package/src/tests/renderer.slot-registry.test.ts +0 -684
- package/src/tests/renderer.tracker.test.ts +0 -202
- package/src/tests/renderer.useMouse.test.ts +0 -83
- package/src/tests/runtime-plugin-node-modules-cycle.fixture.ts +0 -76
- package/src/tests/runtime-plugin-node-modules-import-like-string.fixture.ts +0 -48
- package/src/tests/runtime-plugin-node-modules-mjs.fixture.ts +0 -43
- package/src/tests/runtime-plugin-node-modules-no-bare-rewrite.fixture.ts +0 -67
- package/src/tests/runtime-plugin-node-modules-package-type-cache.fixture.ts +0 -72
- package/src/tests/runtime-plugin-node-modules-runtime-specifier.fixture.ts +0 -44
- package/src/tests/runtime-plugin-node-modules-scoped-package-bare-rewrite.fixture.ts +0 -85
- package/src/tests/runtime-plugin-path-alias.fixture.ts +0 -43
- package/src/tests/runtime-plugin-resolve-roots.fixture.ts +0 -65
- package/src/tests/runtime-plugin-support-configure.fixture.ts +0 -31
- package/src/tests/runtime-plugin-support-late-addition.fixture.ts +0 -17
- package/src/tests/runtime-plugin-support.fixture.ts +0 -11
- package/src/tests/runtime-plugin-support.test.ts +0 -54
- package/src/tests/runtime-plugin-windows-file-url.fixture.ts +0 -30
- package/src/tests/runtime-plugin.fixture.ts +0 -40
- package/src/tests/runtime-plugin.test.ts +0 -369
- package/src/tests/scrollbox-culling-bug.test.ts +0 -114
- package/src/tests/scrollbox-hitgrid-resize.test.ts +0 -136
- package/src/tests/scrollbox-hitgrid.test.ts +0 -909
- package/src/tests/scrollbox.test.ts +0 -1895
- package/src/tests/wrap-resize-perf.test.ts +0 -276
- package/src/tests/yoga-api-coverage.test.ts +0 -409
- package/src/tests/yoga-callback-stress.test.ts +0 -122
- package/src/tests/yoga-ffi.test.ts +0 -117
- package/src/tests/yoga-setters.test.ts +0 -921
- package/src/tests/yoga-upstream/YGAlignBaselineTest.test.ts +0 -124
- package/src/tests/yoga-upstream/YGComputedBorderTest.test.ts +0 -27
- package/src/tests/yoga-upstream/YGComputedMarginTest.test.ts +0 -27
- package/src/tests/yoga-upstream/YGComputedPaddingTest.test.ts +0 -27
- package/src/tests/yoga-upstream/YGDirtiedTest.test.ts +0 -157
- package/src/tests/yoga-upstream/YGErrataTest.test.ts +0 -40
- package/src/tests/yoga-upstream/YGFlexBasisAuto.test.ts +0 -23
- package/src/tests/yoga-upstream/YGHasNewLayout.test.ts +0 -81
- package/src/tests/yoga-upstream/YGMeasureCacheTest.test.ts +0 -31
- package/src/tests/yoga-upstream/YGMeasureTest.test.ts +0 -70
- package/src/tests/yoga-upstream/generated/YGAbsolutePositionTest.test.ts +0 -1864
- package/src/tests/yoga-upstream/generated/YGAlignContentTest.test.ts +0 -5829
- package/src/tests/yoga-upstream/generated/YGAlignItemsTest.test.ts +0 -2444
- package/src/tests/yoga-upstream/generated/YGAlignSelfTest.test.ts +0 -293
- package/src/tests/yoga-upstream/generated/YGAndroidNewsFeed.test.ts +0 -315
- package/src/tests/yoga-upstream/generated/YGAspectRatioTest.test.ts +0 -231
- package/src/tests/yoga-upstream/generated/YGAutoTest.test.ts +0 -347
- package/src/tests/yoga-upstream/generated/YGBorderTest.test.ts +0 -256
- package/src/tests/yoga-upstream/generated/YGBoxSizingTest.test.ts +0 -2747
- package/src/tests/yoga-upstream/generated/YGDimensionTest.test.ts +0 -129
- package/src/tests/yoga-upstream/generated/YGDisplayContentsTest.test.ts +0 -109
- package/src/tests/yoga-upstream/generated/YGDisplayTest.test.ts +0 -1097
- package/src/tests/yoga-upstream/generated/YGFlexDirectionTest.test.ts +0 -4562
- package/src/tests/yoga-upstream/generated/YGFlexTest.test.ts +0 -677
- package/src/tests/yoga-upstream/generated/YGFlexWrapTest.test.ts +0 -2071
- package/src/tests/yoga-upstream/generated/YGGapTest.test.ts +0 -3303
- package/src/tests/yoga-upstream/generated/YGIntrinsicSizeTest.test.ts +0 -582
- package/src/tests/yoga-upstream/generated/YGJustifyContentTest.test.ts +0 -2150
- package/src/tests/yoga-upstream/generated/YGMarginTest.test.ts +0 -1963
- package/src/tests/yoga-upstream/generated/YGMinMaxDimensionTest.test.ts +0 -1446
- package/src/tests/yoga-upstream/generated/YGPaddingTest.test.ts +0 -354
- package/src/tests/yoga-upstream/generated/YGPercentageTest.test.ts +0 -1760
- package/src/tests/yoga-upstream/generated/YGRoundingTest.test.ts +0 -1161
- package/src/tests/yoga-upstream/generated/YGSizeOverflowTest.test.ts +0 -207
- package/src/tests/yoga-upstream/generated/YGStaticPositionTest.test.ts +0 -6338
- package/src/tests/yoga-upstream/tools/MeasureCounter.ts +0 -54
- package/src/tests/yoga-upstream/tools/utils.ts +0 -81
- package/src/text-buffer-view.test.ts +0 -722
- package/src/text-buffer-view.ts +0 -193
- package/src/text-buffer.test.ts +0 -512
- package/src/text-buffer.ts +0 -250
- package/src/types.ts +0 -199
- package/src/utils.ts +0 -88
- package/src/yoga.ts +0 -1146
- package/src/zig/ansi.zig +0 -502
- package/src/zig/audio.zig +0 -1206
- package/src/zig/bench/README.md +0 -50
- package/src/zig/bench/buffer-color-blending_bench.zig +0 -350
- package/src/zig/bench/buffer-draw-box_bench.zig +0 -786
- package/src/zig/bench/buffer-draw-text-buffer_bench.zig +0 -894
- package/src/zig/bench/edit-buffer_bench.zig +0 -476
- package/src/zig/bench/editor-view_bench.zig +0 -169
- package/src/zig/bench/native-span-feed_bench.zig +0 -107
- package/src/zig/bench/rope-markers_bench.zig +0 -713
- package/src/zig/bench/rope_bench.zig +0 -514
- package/src/zig/bench/styled-text_bench.zig +0 -476
- package/src/zig/bench/text-buffer-coords_bench.zig +0 -362
- package/src/zig/bench/text-buffer-view_bench.zig +0 -459
- package/src/zig/bench/text-chunk-graphemes_bench.zig +0 -272
- package/src/zig/bench/utf8_bench.zig +0 -799
- package/src/zig/bench-utils.zig +0 -431
- package/src/zig/bench.zig +0 -223
- package/src/zig/buffer-methods.zig +0 -215
- package/src/zig/buffer.zig +0 -2515
- package/src/zig/build.zig +0 -700
- package/src/zig/build.zig.zon +0 -19
- package/src/zig/edit-buffer.zig +0 -900
- package/src/zig/editor-view.zig +0 -812
- package/src/zig/event-bus.zig +0 -28
- package/src/zig/event-emitter.zig +0 -65
- package/src/zig/file-logger.zig +0 -92
- package/src/zig/grapheme.zig +0 -838
- package/src/zig/handles.zig +0 -267
- package/src/zig/lib.zig +0 -2813
- package/src/zig/link.zig +0 -349
- package/src/zig/logger.zig +0 -43
- package/src/zig/mem-registry.zig +0 -126
- package/src/zig/miniaudio_shim.c +0 -21
- package/src/zig/native-renderable.zig +0 -112
- package/src/zig/native-span-feed-bench-lib.zig +0 -7
- package/src/zig/native-span-feed.zig +0 -747
- package/src/zig/renderer-output.zig +0 -677
- package/src/zig/renderer.zig +0 -2106
- package/src/zig/rope.zig +0 -1220
- package/src/zig/split-scrollback.zig +0 -88
- package/src/zig/syntax-style.zig +0 -174
- package/src/zig/terminal.zig +0 -1652
- package/src/zig/test.zig +0 -82
- package/src/zig/tests/README.md +0 -18
- package/src/zig/tests/ansi_test.zig +0 -18
- package/src/zig/tests/audio_test.zig +0 -439
- package/src/zig/tests/buffer-methods_test.zig +0 -1111
- package/src/zig/tests/buffer_test.zig +0 -2926
- package/src/zig/tests/edit-buffer-history_test.zig +0 -299
- package/src/zig/tests/edit-buffer_test.zig +0 -1688
- package/src/zig/tests/editor-view_test.zig +0 -3454
- package/src/zig/tests/event-emitter_test.zig +0 -249
- package/src/zig/tests/grapheme_test.zig +0 -1329
- package/src/zig/tests/handles_test.zig +0 -123
- package/src/zig/tests/link_test.zig +0 -220
- package/src/zig/tests/mem-registry_test.zig +0 -473
- package/src/zig/tests/memory_leak_regression_test.zig +0 -234
- package/src/zig/tests/native-renderable_test.zig +0 -16
- package/src/zig/tests/native-span-feed_test.zig +0 -1266
- package/src/zig/tests/renderer_test.zig +0 -2604
- package/src/zig/tests/rope-nested_test.zig +0 -712
- package/src/zig/tests/rope_fuzz_test.zig +0 -238
- package/src/zig/tests/rope_test.zig +0 -2362
- package/src/zig/tests/segment-merge.test.zig +0 -148
- package/src/zig/tests/split-scrollback_test.zig +0 -70
- package/src/zig/tests/syntax-style_test.zig +0 -558
- package/src/zig/tests/terminal_test.zig +0 -1489
- package/src/zig/tests/test-renderer.zig +0 -126
- package/src/zig/tests/text-buffer-drawing_test.zig +0 -3291
- package/src/zig/tests/text-buffer-highlights_test.zig +0 -706
- package/src/zig/tests/text-buffer-iterators_test.zig +0 -776
- package/src/zig/tests/text-buffer-segment_test.zig +0 -320
- package/src/zig/tests/text-buffer-selection_test.zig +0 -1056
- package/src/zig/tests/text-buffer-selection_viewport_test.zig +0 -358
- package/src/zig/tests/text-buffer-view_test.zig +0 -3672
- package/src/zig/tests/text-buffer_test.zig +0 -2191
- package/src/zig/tests/unicode-width-map.zon +0 -3909
- package/src/zig/tests/utf8_no_zwj_test.zig +0 -260
- package/src/zig/tests/utf8_test.zig +0 -4060
- package/src/zig/tests/utf8_wcwidth_cursor_test.zig +0 -267
- package/src/zig/tests/utf8_wcwidth_test.zig +0 -357
- package/src/zig/tests/word-wrap-editing_test.zig +0 -498
- package/src/zig/tests/wrap-cache-perf_test.zig +0 -113
- package/src/zig/tests/yoga_test.zig +0 -65
- package/src/zig/text-buffer-iterators.zig +0 -496
- package/src/zig/text-buffer-segment.zig +0 -403
- package/src/zig/text-buffer-view.zig +0 -1428
- package/src/zig/text-buffer.zig +0 -1272
- package/src/zig/utf8.zig +0 -1954
- package/src/zig/utils.zig +0 -12
- package/src/zig/uucode-stub.zig +0 -76
- package/src/zig/vendor/miniaudio/miniaudio.h +0 -93468
- package/src/zig/yoga.zig +0 -658
- package/src/zig-structs.ts +0 -381
- package/src/zig.ts +0 -5260
- package/tsconfig.build.json +0 -17
- package/tsconfig.json +0 -27
- package/tsconfig.node-test.json +0 -138
- /package/{src/lib/tree-sitter/assets → assets}/javascript/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/javascript/tree-sitter-javascript.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown/injections.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown/tree-sitter-markdown.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/typescript/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/typescript/tree-sitter-typescript.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/zig/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/zig/tree-sitter-zig.wasm +0 -0
package/renderer.d.ts
ADDED
|
@@ -0,0 +1,601 @@
|
|
|
1
|
+
import { Renderable, RootRenderable } from "./Renderable.js";
|
|
2
|
+
import { DebugOverlayCorner, type CursorStyleOptions, type MousePointerStyle, type RenderContext, type TerminalCapabilities, type ThemeMode, type WidthMethod } from "./types.js";
|
|
3
|
+
import { RGBA, type ColorInput } from "./lib/RGBA.js";
|
|
4
|
+
import { OptimizedBuffer } from "./buffer.js";
|
|
5
|
+
import { type NativeBufferedOutput, type NativeRenderStats, type RendererHandle } from "./zig.js";
|
|
6
|
+
import { TerminalConsole, type ConsoleOptions } from "./console.js";
|
|
7
|
+
import { type MouseEventType, type RawMouseEvent, type ScrollInfo } from "./lib/parse.mouse.js";
|
|
8
|
+
import { Selection } from "./lib/selection.js";
|
|
9
|
+
import { type ClipboardTarget } from "./lib/clipboard.js";
|
|
10
|
+
import { EventEmitter } from "events";
|
|
11
|
+
import { KeyHandler, InternalKeyHandler } from "./lib/KeyHandler.js";
|
|
12
|
+
import { type EditBufferRenderable } from "./renderables/EditBufferRenderable.js";
|
|
13
|
+
import { type TerminalColors, type GetPaletteOptions } from "./lib/terminal-palette.js";
|
|
14
|
+
import { type Clock } from "./lib/clock.js";
|
|
15
|
+
export interface CliRendererConfig {
|
|
16
|
+
stdin?: NodeJS.ReadStream;
|
|
17
|
+
stdout?: NodeJS.WriteStream;
|
|
18
|
+
width?: number;
|
|
19
|
+
height?: number;
|
|
20
|
+
remote?: boolean;
|
|
21
|
+
bufferedOutput?: NativeBufferedOutput;
|
|
22
|
+
exitOnCtrlC?: boolean;
|
|
23
|
+
exitSignals?: NodeJS.Signals[];
|
|
24
|
+
clearOnShutdown?: boolean;
|
|
25
|
+
forwardEnvKeys?: string[];
|
|
26
|
+
debounceDelay?: number;
|
|
27
|
+
targetFps?: number;
|
|
28
|
+
maxFps?: number;
|
|
29
|
+
memorySnapshotInterval?: number;
|
|
30
|
+
useThread?: boolean;
|
|
31
|
+
gatherStats?: boolean;
|
|
32
|
+
maxStatSamples?: number;
|
|
33
|
+
consoleOptions?: Omit<ConsoleOptions, "clock">;
|
|
34
|
+
postProcessFns?: ((buffer: OptimizedBuffer, deltaTime: number) => void)[];
|
|
35
|
+
enableMouseMovement?: boolean;
|
|
36
|
+
useMouse?: boolean;
|
|
37
|
+
autoFocus?: boolean;
|
|
38
|
+
screenMode?: ScreenMode;
|
|
39
|
+
footerHeight?: number;
|
|
40
|
+
externalOutputMode?: ExternalOutputMode;
|
|
41
|
+
consoleMode?: ConsoleMode;
|
|
42
|
+
useKittyKeyboard?: KittyKeyboardOptions | null;
|
|
43
|
+
backgroundColor?: ColorInput;
|
|
44
|
+
openConsoleOnError?: boolean;
|
|
45
|
+
prependInputHandlers?: ((sequence: string) => boolean)[];
|
|
46
|
+
stdinParserMaxBufferBytes?: number;
|
|
47
|
+
clock?: Clock;
|
|
48
|
+
onDestroy?: () => void;
|
|
49
|
+
}
|
|
50
|
+
export type ScreenMode = "alternate-screen" | "main-screen" | "split-footer";
|
|
51
|
+
export type ExternalOutputMode = "capture-stdout" | "passthrough";
|
|
52
|
+
export interface CliRendererExternalOutputEvent {
|
|
53
|
+
snapshot: OptimizedBuffer;
|
|
54
|
+
rowColumns: number;
|
|
55
|
+
startOnNewLine: boolean;
|
|
56
|
+
trailingNewline: boolean;
|
|
57
|
+
}
|
|
58
|
+
export type ConsoleMode = "console-overlay" | "disabled";
|
|
59
|
+
export type PixelResolution = {
|
|
60
|
+
width: number;
|
|
61
|
+
height: number;
|
|
62
|
+
};
|
|
63
|
+
export interface CliRendererStats extends NativeRenderStats {
|
|
64
|
+
fps: number;
|
|
65
|
+
frameCount: number;
|
|
66
|
+
frameTimes: number[];
|
|
67
|
+
averageFrameTime: number;
|
|
68
|
+
minFrameTime: number;
|
|
69
|
+
maxFrameTime: number;
|
|
70
|
+
frameCallbackTime: number;
|
|
71
|
+
}
|
|
72
|
+
export interface CliRendererFrameEvent {
|
|
73
|
+
frameId: number;
|
|
74
|
+
}
|
|
75
|
+
export interface RendererSchedulerState {
|
|
76
|
+
isRunning: boolean;
|
|
77
|
+
isRendering: boolean;
|
|
78
|
+
hasScheduledRender: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface ScrollbackRenderContext {
|
|
81
|
+
width: number;
|
|
82
|
+
widthMethod: WidthMethod;
|
|
83
|
+
tailColumn: number;
|
|
84
|
+
renderContext: RenderContext;
|
|
85
|
+
}
|
|
86
|
+
export interface ScrollbackSnapshot {
|
|
87
|
+
root: Renderable;
|
|
88
|
+
width?: number;
|
|
89
|
+
height?: number;
|
|
90
|
+
rowColumns?: number;
|
|
91
|
+
startOnNewLine?: boolean;
|
|
92
|
+
trailingNewline?: boolean;
|
|
93
|
+
teardown?: () => void;
|
|
94
|
+
}
|
|
95
|
+
export type ScrollbackWriter = (ctx: ScrollbackRenderContext) => ScrollbackSnapshot;
|
|
96
|
+
export interface ScrollbackSurfaceOptions {
|
|
97
|
+
startOnNewLine?: boolean;
|
|
98
|
+
}
|
|
99
|
+
export interface ScrollbackSurfaceCommitOptions {
|
|
100
|
+
rowColumns?: number;
|
|
101
|
+
trailingNewline?: boolean;
|
|
102
|
+
}
|
|
103
|
+
export interface ScrollbackSurface {
|
|
104
|
+
readonly renderContext: RenderContext;
|
|
105
|
+
readonly root: Renderable;
|
|
106
|
+
readonly width: number;
|
|
107
|
+
readonly height: number;
|
|
108
|
+
readonly isDestroyed: boolean;
|
|
109
|
+
render(): void;
|
|
110
|
+
settle(timeoutMs?: number): Promise<void>;
|
|
111
|
+
commitRows(startRow: number, endRowExclusive: number, options?: ScrollbackSurfaceCommitOptions): void;
|
|
112
|
+
destroy(): void;
|
|
113
|
+
}
|
|
114
|
+
export interface SplitFooterReplayResetOptions {
|
|
115
|
+
clearSavedLines?: boolean;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Kitty Keyboard Protocol configuration options
|
|
119
|
+
* See: https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement
|
|
120
|
+
*/
|
|
121
|
+
export interface KittyKeyboardOptions {
|
|
122
|
+
/** Disambiguate escape codes (fixes ESC timing, alt+key ambiguity, ctrl+c as event). Default: true */
|
|
123
|
+
disambiguate?: boolean;
|
|
124
|
+
/** Report alternate keys (numpad, shifted, base layout) for cross-keyboard shortcuts. Default: true */
|
|
125
|
+
alternateKeys?: boolean;
|
|
126
|
+
/** Report event types (press/repeat/release). Default: false */
|
|
127
|
+
events?: boolean;
|
|
128
|
+
/** Report all keys as escape codes. Default: false */
|
|
129
|
+
allKeysAsEscapes?: boolean;
|
|
130
|
+
/** Report text associated with key events. Default: false */
|
|
131
|
+
reportText?: boolean;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Build kitty keyboard protocol flags based on configuration
|
|
135
|
+
* @param config Kitty keyboard configuration object (null/undefined = disabled)
|
|
136
|
+
* @returns The combined flags value (0 = disabled, >0 = enabled)
|
|
137
|
+
* @internal Exported for testing
|
|
138
|
+
*/
|
|
139
|
+
export declare function buildKittyKeyboardFlags(config: KittyKeyboardOptions | null | undefined): number;
|
|
140
|
+
export declare class MouseEvent {
|
|
141
|
+
readonly type: MouseEventType;
|
|
142
|
+
readonly button: number;
|
|
143
|
+
readonly x: number;
|
|
144
|
+
readonly y: number;
|
|
145
|
+
readonly source?: Renderable;
|
|
146
|
+
readonly modifiers: {
|
|
147
|
+
shift: boolean;
|
|
148
|
+
alt: boolean;
|
|
149
|
+
ctrl: boolean;
|
|
150
|
+
};
|
|
151
|
+
readonly scroll?: ScrollInfo;
|
|
152
|
+
readonly target: Renderable | null;
|
|
153
|
+
readonly isDragging?: boolean;
|
|
154
|
+
private _propagationStopped;
|
|
155
|
+
private _defaultPrevented;
|
|
156
|
+
get propagationStopped(): boolean;
|
|
157
|
+
get defaultPrevented(): boolean;
|
|
158
|
+
constructor(target: Renderable | null, attributes: RawMouseEvent & {
|
|
159
|
+
source?: Renderable;
|
|
160
|
+
isDragging?: boolean;
|
|
161
|
+
});
|
|
162
|
+
stopPropagation(): void;
|
|
163
|
+
preventDefault(): void;
|
|
164
|
+
}
|
|
165
|
+
export declare enum MouseButton {
|
|
166
|
+
LEFT = 0,
|
|
167
|
+
MIDDLE = 1,
|
|
168
|
+
RIGHT = 2,
|
|
169
|
+
WHEEL_UP = 4,
|
|
170
|
+
WHEEL_DOWN = 5
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Create a CLI renderer and run its async terminal setup. The constructor
|
|
174
|
+
* owns all stream and backend decisions; this factory only layers on the
|
|
175
|
+
* `--delay-start` flag and the `await setupTerminal()` convenience.
|
|
176
|
+
*/
|
|
177
|
+
export declare function createCliRenderer(config?: CliRendererConfig): Promise<CliRenderer>;
|
|
178
|
+
export declare enum CliRenderEvents {
|
|
179
|
+
RESIZE = "resize",
|
|
180
|
+
FRAME = "frame",
|
|
181
|
+
EXTERNAL_OUTPUT = "external_output",
|
|
182
|
+
FOCUS = "focus",
|
|
183
|
+
BLUR = "blur",
|
|
184
|
+
FOCUSED_RENDERABLE = "focused_renderable",
|
|
185
|
+
FOCUSED_EDITOR = "focused_editor",
|
|
186
|
+
THEME_MODE = "theme_mode",
|
|
187
|
+
PALETTE = "palette",
|
|
188
|
+
CAPABILITIES = "capabilities",
|
|
189
|
+
SELECTION = "selection",
|
|
190
|
+
DEBUG_OVERLAY_TOGGLE = "debugOverlay:toggle",
|
|
191
|
+
DESTROY = "destroy",
|
|
192
|
+
MEMORY_SNAPSHOT = "memory:snapshot"
|
|
193
|
+
}
|
|
194
|
+
export declare enum RendererControlState {
|
|
195
|
+
IDLE = "idle",
|
|
196
|
+
AUTO_STARTED = "auto_started",
|
|
197
|
+
EXPLICIT_STARTED = "explicit_started",
|
|
198
|
+
EXPLICIT_PAUSED = "explicit_paused",
|
|
199
|
+
EXPLICIT_SUSPENDED = "explicit_suspended",
|
|
200
|
+
EXPLICIT_STOPPED = "explicit_stopped"
|
|
201
|
+
}
|
|
202
|
+
export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
203
|
+
private static animationFrameId;
|
|
204
|
+
private lib;
|
|
205
|
+
rendererPtr: RendererHandle;
|
|
206
|
+
stdin: NodeJS.ReadStream;
|
|
207
|
+
private stdout;
|
|
208
|
+
private exitOnCtrlC;
|
|
209
|
+
private exitSignals;
|
|
210
|
+
private _exitListenersAdded;
|
|
211
|
+
private _isDestroyed;
|
|
212
|
+
private _destroyPending;
|
|
213
|
+
private _destroyFinalized;
|
|
214
|
+
private _destroyCleanupPrepared;
|
|
215
|
+
private _streamLeaseAcquired;
|
|
216
|
+
nextRenderBuffer: OptimizedBuffer;
|
|
217
|
+
currentRenderBuffer: OptimizedBuffer;
|
|
218
|
+
private _isRunning;
|
|
219
|
+
private _targetFps;
|
|
220
|
+
private _maxFps;
|
|
221
|
+
private automaticMemorySnapshot;
|
|
222
|
+
private memorySnapshotInterval;
|
|
223
|
+
private memorySnapshotTimer;
|
|
224
|
+
private lastMemorySnapshot;
|
|
225
|
+
readonly root: RootRenderable;
|
|
226
|
+
width: number;
|
|
227
|
+
height: number;
|
|
228
|
+
private _useThread;
|
|
229
|
+
private gatherStats;
|
|
230
|
+
private frameTimes;
|
|
231
|
+
private maxStatSamples;
|
|
232
|
+
private postProcessFns;
|
|
233
|
+
private backgroundColor;
|
|
234
|
+
private waitingForPixelResolution;
|
|
235
|
+
private readonly clock;
|
|
236
|
+
private rendering;
|
|
237
|
+
private renderingNative;
|
|
238
|
+
private renderTimeout;
|
|
239
|
+
private lastTime;
|
|
240
|
+
private frameCount;
|
|
241
|
+
private _frameId;
|
|
242
|
+
private lastFpsTime;
|
|
243
|
+
private currentFps;
|
|
244
|
+
private targetFrameTime;
|
|
245
|
+
private minTargetFrameTime;
|
|
246
|
+
private immediateRerenderRequested;
|
|
247
|
+
private updateScheduled;
|
|
248
|
+
private liveRequestCounter;
|
|
249
|
+
private _controlState;
|
|
250
|
+
private frameCallbacks;
|
|
251
|
+
private renderStats;
|
|
252
|
+
debugOverlay: {
|
|
253
|
+
enabled: any;
|
|
254
|
+
corner: DebugOverlayCorner;
|
|
255
|
+
};
|
|
256
|
+
private _console;
|
|
257
|
+
private _resolution;
|
|
258
|
+
private _keyHandler;
|
|
259
|
+
private stdinParser;
|
|
260
|
+
private readonly oscSubscribers;
|
|
261
|
+
private hasLoggedStdinParserError;
|
|
262
|
+
private animationRequest;
|
|
263
|
+
private resizeTimeoutId;
|
|
264
|
+
private capabilityTimeoutId;
|
|
265
|
+
private xtVersionWaiters;
|
|
266
|
+
private splitStartupSeedTimeoutId;
|
|
267
|
+
private pendingSplitStartupCursorSeed;
|
|
268
|
+
private resizeDebounceDelay;
|
|
269
|
+
private enableMouseMovement;
|
|
270
|
+
private _useMouse;
|
|
271
|
+
private autoFocus;
|
|
272
|
+
private _screenMode;
|
|
273
|
+
private _footerHeight;
|
|
274
|
+
private _externalOutputMode;
|
|
275
|
+
private clearOnShutdown;
|
|
276
|
+
private _suspendedMouseEnabled;
|
|
277
|
+
private _previousControlState;
|
|
278
|
+
private pendingSuspendedTerminalSetup;
|
|
279
|
+
private suspendedNonAltSurfacePreserved;
|
|
280
|
+
private capturedRenderable?;
|
|
281
|
+
private lastOverRenderableNum;
|
|
282
|
+
private lastOverRenderable?;
|
|
283
|
+
private currentSelection;
|
|
284
|
+
private selectionContainers;
|
|
285
|
+
private clipboard;
|
|
286
|
+
private _splitHeight;
|
|
287
|
+
private renderOffset;
|
|
288
|
+
private splitTailColumn;
|
|
289
|
+
private pendingSplitFooterTransition;
|
|
290
|
+
private forceFullRepaintRequested;
|
|
291
|
+
private readonly maxSplitCommitsPerFrame;
|
|
292
|
+
private _terminalWidth;
|
|
293
|
+
private _terminalHeight;
|
|
294
|
+
private _terminalIsSetup;
|
|
295
|
+
private externalOutputQueue;
|
|
296
|
+
private pendingExternalOutputMode;
|
|
297
|
+
private realStdoutWrite;
|
|
298
|
+
private _useConsole;
|
|
299
|
+
private sigwinchHandler;
|
|
300
|
+
private _capabilities;
|
|
301
|
+
private _latestPointer;
|
|
302
|
+
private _hasPointer;
|
|
303
|
+
private _lastPointerModifiers;
|
|
304
|
+
private _currentMousePointerStyle;
|
|
305
|
+
private _currentFocusedRenderable;
|
|
306
|
+
private lifecyclePasses;
|
|
307
|
+
private _openConsoleOnError;
|
|
308
|
+
private _paletteDetector;
|
|
309
|
+
private _paletteCache;
|
|
310
|
+
private _paletteDetectionPromise;
|
|
311
|
+
private _paletteDetectionSize;
|
|
312
|
+
private _paletteEpoch;
|
|
313
|
+
private _nativePaletteSignature;
|
|
314
|
+
private _emittedPaletteSignature;
|
|
315
|
+
private _palettePublishGeneration;
|
|
316
|
+
private _onDestroy?;
|
|
317
|
+
private themeModeState;
|
|
318
|
+
private _terminalFocusState;
|
|
319
|
+
private sequenceHandlers;
|
|
320
|
+
private prependedInputHandlers;
|
|
321
|
+
private shouldRestoreModesOnNextFocus;
|
|
322
|
+
private themeModeHandler;
|
|
323
|
+
private idleResolvers;
|
|
324
|
+
private _debugInputs;
|
|
325
|
+
private _debugModeEnabled;
|
|
326
|
+
private handleError;
|
|
327
|
+
private dumpOutputCache;
|
|
328
|
+
private exitHandler;
|
|
329
|
+
private warningHandler;
|
|
330
|
+
private readonly _usesProcessStdout;
|
|
331
|
+
private _feed;
|
|
332
|
+
private _detachFeed;
|
|
333
|
+
private _detachFeedError;
|
|
334
|
+
private feedIdleRenderScheduled;
|
|
335
|
+
private ordinaryFrameWaitingForFeed;
|
|
336
|
+
private ordinaryFrameWaitControlState;
|
|
337
|
+
get controlState(): RendererControlState;
|
|
338
|
+
/**
|
|
339
|
+
* Construct a renderer over the given streams.
|
|
340
|
+
*
|
|
341
|
+
* If `stdout` is not `process.stdout`, a `NativeSpanFeed` is allocated
|
|
342
|
+
* internally and rendered bytes are piped through it to `stdout` unless
|
|
343
|
+
* `bufferedOutput: "memory"` is set. Prefer `createCliRenderer` for the async
|
|
344
|
+
* `setupTerminal` convenience.
|
|
345
|
+
*
|
|
346
|
+
* Construction side effects (observable before the constructor returns):
|
|
347
|
+
* - Acquires exclusive ownership of the given stdin/stdout streams
|
|
348
|
+
* - Allocates a `NativeSpanFeed` (for non-process stdout unless bufferedOutput is "memory")
|
|
349
|
+
* - Calls `lib.createRenderer` → native Zig allocation
|
|
350
|
+
* - Registers in the process-wide `rendererTracker`
|
|
351
|
+
* - Adds `process.on(...)` listeners for SIGWINCH (process.stdout only),
|
|
352
|
+
* "warning", "uncaughtException", "unhandledRejection", "beforeExit",
|
|
353
|
+
* plus the configured `exitSignals`
|
|
354
|
+
* - Replaces `global.requestAnimationFrame` with the renderer's impl
|
|
355
|
+
* - When `setupTerminal()` is called, it will put `stdin` in raw mode and
|
|
356
|
+
* call `stdin.resume()`
|
|
357
|
+
*
|
|
358
|
+
* Some late constructor side effects are not rolled back if construction
|
|
359
|
+
* throws partway; production callers should use `createCliRenderer`, which
|
|
360
|
+
* wraps `setupTerminal()` in a try/catch that calls `destroy()` on failure.
|
|
361
|
+
*/
|
|
362
|
+
constructor(stdin: NodeJS.ReadStream, stdout: NodeJS.WriteStream, width: number, height: number, config?: CliRendererConfig);
|
|
363
|
+
private addExitListeners;
|
|
364
|
+
private removeExitListeners;
|
|
365
|
+
get isDestroyed(): boolean;
|
|
366
|
+
registerLifecyclePass(renderable: Renderable): void;
|
|
367
|
+
unregisterLifecyclePass(renderable: Renderable): void;
|
|
368
|
+
getLifecyclePasses(): Set<Renderable>;
|
|
369
|
+
get currentFocusedRenderable(): Renderable | null;
|
|
370
|
+
get currentFocusedEditor(): EditBufferRenderable | null;
|
|
371
|
+
private normalizeClockTime;
|
|
372
|
+
private getElapsedMs;
|
|
373
|
+
focusRenderable(renderable: Renderable): void;
|
|
374
|
+
blurRenderable(renderable: Renderable): void;
|
|
375
|
+
private setCapturedRenderable;
|
|
376
|
+
addToHitGrid(x: number, y: number, width: number, height: number, id: number): void;
|
|
377
|
+
pushHitGridScissorRect(x: number, y: number, width: number, height: number): void;
|
|
378
|
+
popHitGridScissorRect(): void;
|
|
379
|
+
clearHitGridScissorRects(): void;
|
|
380
|
+
get widthMethod(): WidthMethod;
|
|
381
|
+
get frameId(): number;
|
|
382
|
+
private writeOut;
|
|
383
|
+
private scheduleRenderAfterFeedIdle;
|
|
384
|
+
private handleNativeRenderRejection;
|
|
385
|
+
private reportNativeRenderFailure;
|
|
386
|
+
private scheduleRenderTimer;
|
|
387
|
+
private scheduleRenderAfterBackpressure;
|
|
388
|
+
requestRender(): void;
|
|
389
|
+
private activateFrame;
|
|
390
|
+
get consoleMode(): ConsoleMode;
|
|
391
|
+
set consoleMode(mode: ConsoleMode);
|
|
392
|
+
get isRunning(): boolean;
|
|
393
|
+
private isIdleNow;
|
|
394
|
+
private resolveIdleIfNeeded;
|
|
395
|
+
idle(): Promise<void>;
|
|
396
|
+
getSchedulerState(): RendererSchedulerState;
|
|
397
|
+
get resolution(): PixelResolution | null;
|
|
398
|
+
get console(): TerminalConsole;
|
|
399
|
+
get keyInput(): KeyHandler;
|
|
400
|
+
get _internalKeyInput(): InternalKeyHandler;
|
|
401
|
+
get terminalWidth(): number;
|
|
402
|
+
get terminalHeight(): number;
|
|
403
|
+
get useThread(): boolean;
|
|
404
|
+
get targetFps(): number;
|
|
405
|
+
set targetFps(targetFps: number);
|
|
406
|
+
get maxFps(): number;
|
|
407
|
+
set maxFps(maxFps: number);
|
|
408
|
+
get useMouse(): boolean;
|
|
409
|
+
set useMouse(useMouse: boolean);
|
|
410
|
+
get screenMode(): ScreenMode;
|
|
411
|
+
set screenMode(mode: ScreenMode);
|
|
412
|
+
get footerHeight(): number;
|
|
413
|
+
set footerHeight(footerHeight: number);
|
|
414
|
+
get externalOutputMode(): ExternalOutputMode;
|
|
415
|
+
set externalOutputMode(mode: ExternalOutputMode);
|
|
416
|
+
private applyExternalOutputMode;
|
|
417
|
+
private afterExternalOutputModeChanged;
|
|
418
|
+
private applyPendingExternalOutputModeIfReady;
|
|
419
|
+
private flushPendingSplitOutputBeforeLeavingSplitFooter;
|
|
420
|
+
get liveRequestCount(): number;
|
|
421
|
+
get currentControlState(): string;
|
|
422
|
+
get capabilities(): TerminalCapabilities | null;
|
|
423
|
+
triggerNotification(message: string, title?: string): boolean;
|
|
424
|
+
get themeMode(): ThemeMode | null;
|
|
425
|
+
waitForThemeMode(timeoutMs?: number): Promise<ThemeMode | null>;
|
|
426
|
+
getDebugInputs(): Array<{
|
|
427
|
+
timestamp: string;
|
|
428
|
+
sequence: string;
|
|
429
|
+
}>;
|
|
430
|
+
get useKittyKeyboard(): boolean;
|
|
431
|
+
set useKittyKeyboard(use: boolean);
|
|
432
|
+
createScrollbackSurface(options?: ScrollbackSurfaceOptions): ScrollbackSurface;
|
|
433
|
+
writeToScrollback(write: ScrollbackWriter): void;
|
|
434
|
+
resetSplitFooterForReplay(options?: SplitFooterReplayResetOptions): void;
|
|
435
|
+
private getSnapshotWidth;
|
|
436
|
+
private getSnapshotHeight;
|
|
437
|
+
private getSnapshotRowWidths;
|
|
438
|
+
private advanceSplitTailColumn;
|
|
439
|
+
private getSplitTailColumnAfterCommit;
|
|
440
|
+
private recordSplitCommit;
|
|
441
|
+
private getPendingSplitTailColumn;
|
|
442
|
+
private enqueueRenderedScrollbackCommit;
|
|
443
|
+
private enqueueSplitCommit;
|
|
444
|
+
private createStdoutSnapshotCommit;
|
|
445
|
+
private splitStdoutRows;
|
|
446
|
+
private createStdoutSnapshotCommits;
|
|
447
|
+
private flushPendingSplitCommits;
|
|
448
|
+
private interceptStdoutWrite;
|
|
449
|
+
private getSplitPinnedRenderOffset;
|
|
450
|
+
private getSplitCursorSeedRows;
|
|
451
|
+
private isSplitCursorSeedFrameBlocked;
|
|
452
|
+
private canFlushSplitOutputBeforeTransition;
|
|
453
|
+
private clearSplitStartupCursorSeed;
|
|
454
|
+
private abortSplitStartupCursorSeed;
|
|
455
|
+
private flushPendingSplitOutputBeforeTransition;
|
|
456
|
+
private resetSplitScrollback;
|
|
457
|
+
private syncSplitScrollback;
|
|
458
|
+
private getSplitOutputOffset;
|
|
459
|
+
private clearPendingSplitFooterTransition;
|
|
460
|
+
private setPendingSplitFooterTransition;
|
|
461
|
+
private syncSplitFooterState;
|
|
462
|
+
private clearStaleSplitSurfaceRows;
|
|
463
|
+
private applyScreenMode;
|
|
464
|
+
private flushStdoutCache;
|
|
465
|
+
private enableMouse;
|
|
466
|
+
private disableMouse;
|
|
467
|
+
enableKittyKeyboard(flags?: number): void;
|
|
468
|
+
disableKittyKeyboard(): void;
|
|
469
|
+
set useThread(useThread: boolean);
|
|
470
|
+
setupTerminal(): Promise<void>;
|
|
471
|
+
private stdinListener;
|
|
472
|
+
addInputHandler(handler: (sequence: string) => boolean): void;
|
|
473
|
+
prependInputHandler(handler: (sequence: string) => boolean): void;
|
|
474
|
+
removeInputHandler(handler: (sequence: string) => boolean): void;
|
|
475
|
+
private updateStdinParserProtocolContext;
|
|
476
|
+
subscribeOsc(handler: (sequence: string) => void): () => void;
|
|
477
|
+
private processCapabilitySequence;
|
|
478
|
+
private capabilityHandler;
|
|
479
|
+
private focusHandler;
|
|
480
|
+
private dispatchSequenceHandlers;
|
|
481
|
+
private drainStdinParser;
|
|
482
|
+
private handleStdinEvent;
|
|
483
|
+
private handleStdinParserFailure;
|
|
484
|
+
private setupInput;
|
|
485
|
+
private dispatchMouseEvent;
|
|
486
|
+
private processSingleMouseEvent;
|
|
487
|
+
/**
|
|
488
|
+
* Recheck hover state after hit grid changes.
|
|
489
|
+
* Called after render when native code detects the hit grid changed.
|
|
490
|
+
* Fires out/over events if the element under the cursor changed.
|
|
491
|
+
*/
|
|
492
|
+
private recheckHoverState;
|
|
493
|
+
setMousePointer(style: MousePointerStyle): void;
|
|
494
|
+
hitTest(x: number, y: number): number;
|
|
495
|
+
private takeMemorySnapshot;
|
|
496
|
+
private startMemorySnapshotTimer;
|
|
497
|
+
private stopMemorySnapshotTimer;
|
|
498
|
+
setMemorySnapshotInterval(interval: number): void;
|
|
499
|
+
private handleResize;
|
|
500
|
+
private queryPixelResolution;
|
|
501
|
+
private processResize;
|
|
502
|
+
/**
|
|
503
|
+
* Programmatically resize the renderer to new dimensions.
|
|
504
|
+
*
|
|
505
|
+
* Use this for externally-driven resize events — for example, an SSH
|
|
506
|
+
* `window-change` signal or a test harness simulating a terminal resize.
|
|
507
|
+
* When the renderer is attached to `process.stdout`, `SIGWINCH` is handled
|
|
508
|
+
* automatically and callers do not need this method.
|
|
509
|
+
*/
|
|
510
|
+
resize(width: number, height: number): void;
|
|
511
|
+
setBackgroundColor(color: ColorInput): void;
|
|
512
|
+
toggleDebugOverlay(): void;
|
|
513
|
+
configureDebugOverlay(options: {
|
|
514
|
+
enabled?: boolean;
|
|
515
|
+
corner?: DebugOverlayCorner;
|
|
516
|
+
}): void;
|
|
517
|
+
setTerminalTitle(title: string): void;
|
|
518
|
+
/**
|
|
519
|
+
* Reset the terminal background color to its default via OSC 111.
|
|
520
|
+
* Called automatically by destroy() and suspend(), but exposed for
|
|
521
|
+
* consumers that need explicit control (e.g. before SIGTSTP).
|
|
522
|
+
*/
|
|
523
|
+
resetTerminalBgColor(): void;
|
|
524
|
+
copyToClipboardOSC52(text: string, target?: ClipboardTarget): boolean;
|
|
525
|
+
clearClipboardOSC52(target?: ClipboardTarget): boolean;
|
|
526
|
+
isOsc52Supported(): boolean;
|
|
527
|
+
dumpHitGrid(): void;
|
|
528
|
+
dumpBuffers(timestamp?: number): void;
|
|
529
|
+
dumpOutputBuffer(timestamp?: number): void;
|
|
530
|
+
static setCursorPosition(renderer: CliRenderer, x: number, y: number, visible?: boolean): void;
|
|
531
|
+
static setCursorStyle(renderer: CliRenderer, options: CursorStyleOptions): void;
|
|
532
|
+
static setCursorColor(renderer: CliRenderer, color: RGBA): void;
|
|
533
|
+
setCursorPosition(x: number, y: number, visible?: boolean): void;
|
|
534
|
+
setCursorStyle(options: CursorStyleOptions): void;
|
|
535
|
+
setCursorColor(color: RGBA): void;
|
|
536
|
+
getCursorState(): import("./zig.js").CursorState;
|
|
537
|
+
addPostProcessFn(processFn: (buffer: OptimizedBuffer, deltaTime: number) => void): void;
|
|
538
|
+
removePostProcessFn(processFn: (buffer: OptimizedBuffer, deltaTime: number) => void): void;
|
|
539
|
+
clearPostProcessFns(): void;
|
|
540
|
+
setFrameCallback(callback: (deltaTime: number) => Promise<void>): void;
|
|
541
|
+
removeFrameCallback(callback: (deltaTime: number) => Promise<void>): void;
|
|
542
|
+
clearFrameCallbacks(): void;
|
|
543
|
+
requestLive(): void;
|
|
544
|
+
dropLive(): void;
|
|
545
|
+
start(): void;
|
|
546
|
+
auto(): void;
|
|
547
|
+
private internalStart;
|
|
548
|
+
pause(): void;
|
|
549
|
+
suspend(): void;
|
|
550
|
+
resume(): void;
|
|
551
|
+
private internalPause;
|
|
552
|
+
stop(): void;
|
|
553
|
+
private internalStop;
|
|
554
|
+
destroy(): void;
|
|
555
|
+
private cleanupBeforeDestroy;
|
|
556
|
+
private prepareDestroyDuringRender;
|
|
557
|
+
private finalizeDestroy;
|
|
558
|
+
private startRenderLoop;
|
|
559
|
+
private loop;
|
|
560
|
+
intermediateRender(): void;
|
|
561
|
+
private renderNative;
|
|
562
|
+
private collectStatSample;
|
|
563
|
+
getNativeStats(): NativeRenderStats;
|
|
564
|
+
getStats(): CliRendererStats;
|
|
565
|
+
resetStats(): void;
|
|
566
|
+
setGatherStats(enabled: boolean): void;
|
|
567
|
+
getSelection(): Selection | null;
|
|
568
|
+
get hasSelection(): boolean;
|
|
569
|
+
getSelectionContainer(): Renderable | null;
|
|
570
|
+
clearSelection(): void;
|
|
571
|
+
/**
|
|
572
|
+
* Start a new selection at the given coordinates.
|
|
573
|
+
* Used by both mouse and keyboard selection.
|
|
574
|
+
*/
|
|
575
|
+
startSelection(renderable: Renderable, x: number, y: number): void;
|
|
576
|
+
updateSelection(currentRenderable: Renderable | undefined, x: number, y: number, options?: {
|
|
577
|
+
finishDragging?: boolean;
|
|
578
|
+
}): void;
|
|
579
|
+
requestSelectionUpdate(): void;
|
|
580
|
+
private isWithinContainer;
|
|
581
|
+
private finishSelection;
|
|
582
|
+
private notifySelectablesOfSelectionChange;
|
|
583
|
+
private walkSelectableRenderables;
|
|
584
|
+
get paletteDetectionStatus(): "idle" | "detecting" | "cached";
|
|
585
|
+
private getCachedPaletteBySize;
|
|
586
|
+
private ensurePaletteDetector;
|
|
587
|
+
private syncNativePaletteState;
|
|
588
|
+
private emitPaletteChange;
|
|
589
|
+
private resolveXtVersionWaiters;
|
|
590
|
+
private waitForXtVersion;
|
|
591
|
+
private shouldSyncNativePaletteState;
|
|
592
|
+
private refreshPalette;
|
|
593
|
+
clearPaletteCache(): void;
|
|
594
|
+
/**
|
|
595
|
+
* Detects the terminal's color palette
|
|
596
|
+
*
|
|
597
|
+
* @returns Promise resolving to TerminalColors object containing palette and special colors
|
|
598
|
+
* @throws Error if renderer is suspended
|
|
599
|
+
*/
|
|
600
|
+
getPalette(options?: GetPaletteOptions): Promise<TerminalColors>;
|
|
601
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type CreateRuntimePluginOptions } from "./runtime-plugin.js";
|
|
2
|
+
export declare function ensureRuntimePluginSupport(options?: CreateRuntimePluginOptions): boolean;
|
|
3
|
+
export { createRuntimePlugin, runtimeModuleIdForSpecifier } from "./runtime-plugin.js";
|
|
4
|
+
export type { CreateRuntimePluginOptions, RuntimeModuleEntry, RuntimeModuleExports, RuntimeModuleLoader, } from "./runtime-plugin.js";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { plugin as registerBunPlugin } from "bun";
|
|
2
|
+
import { createRuntimePlugin } from "./runtime-plugin.js";
|
|
3
|
+
const runtimePluginSupportInstalledKey = "__opentuiCoreRuntimePluginSupportInstalled__";
|
|
4
|
+
function normalizeRewriteKey(rewrite) {
|
|
5
|
+
return `${rewrite?.nodeModulesRuntimeSpecifiers ?? true}:${rewrite?.nodeModulesBareSpecifiers ?? false}`;
|
|
6
|
+
}
|
|
7
|
+
function assertCompatibleInstall(install, options) {
|
|
8
|
+
for (const specifier of Object.keys(options.additional ?? {})) {
|
|
9
|
+
if (!install.additionalSpecifiers.has(specifier)) {
|
|
10
|
+
throw new Error(`OpenTUI Core runtime plugin support is already installed without ${specifier}. Call ensureRuntimePluginSupport({ additional }) from @opentui/core/runtime-plugin-support/configure before importing @opentui/core/runtime-plugin-support.`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
if (options.core && options.core !== install.core) {
|
|
14
|
+
throw new Error("OpenTUI Core runtime plugin support is already installed with a different core runtime module.");
|
|
15
|
+
}
|
|
16
|
+
if (options.rewrite && normalizeRewriteKey(options.rewrite) !== install.rewriteKey) {
|
|
17
|
+
throw new Error("OpenTUI Core runtime plugin support is already installed with different rewrite options.");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function ensureRuntimePluginSupport(options = {}) {
|
|
21
|
+
const state = globalThis;
|
|
22
|
+
const install = state[runtimePluginSupportInstalledKey];
|
|
23
|
+
if (install) {
|
|
24
|
+
assertCompatibleInstall(install, options);
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
registerBunPlugin(createRuntimePlugin(options));
|
|
28
|
+
state[runtimePluginSupportInstalledKey] = {
|
|
29
|
+
additionalSpecifiers: new Set(Object.keys(options.additional ?? {})),
|
|
30
|
+
core: options.core,
|
|
31
|
+
rewriteKey: normalizeRewriteKey(options.rewrite),
|
|
32
|
+
};
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
export { createRuntimePlugin, runtimeModuleIdForSpecifier } from "./runtime-plugin.js";
|
|
36
|
+
//# sourceMappingURL=runtime-plugin-support-configure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-plugin-support-configure.js","sourceRoot":"","sources":["runtime-plugin-support-configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAA4D,MAAM,qBAAqB,CAAA;AAEnH,MAAM,gCAAgC,GAAG,8CAA8C,CAAA;AAYvF,SAAS,mBAAmB,CAAC,OAA0D;IACrF,OAAO,GAAG,OAAO,EAAE,4BAA4B,IAAI,IAAI,IAAI,OAAO,EAAE,yBAAyB,IAAI,KAAK,EAAE,CAAA;AAC1G,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAoC,EAAE,OAAmC;IACxG,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,oEAAoE,SAAS,8JAA8J,CAC5O,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAA;IACnH,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;IAC7G,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAAsC,EAAE;IACjF,MAAM,KAAK,GAAG,UAAuC,CAAA;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAEvD,IAAI,OAAO,EAAE,CAAC;QACZ,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,iBAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAA;IAE/C,KAAK,CAAC,gCAAgC,CAAC,GAAG;QACxC,oBAAoB,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC;KACjD,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const errorMessage = "@opentui/core/runtime-plugin-support/configure is Bun-only and is not available in Node.js. Use Bun to import this entrypoint."
|
|
2
|
+
|
|
3
|
+
export function ensureRuntimePluginSupport() {
|
|
4
|
+
throw new Error("@opentui/core/runtime-plugin-support/configure is Bun-only and is not available in Node.js. Use Bun to import this entrypoint.")
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function createRuntimePlugin() {
|
|
8
|
+
throw new Error("@opentui/core/runtime-plugin-support/configure is Bun-only and is not available in Node.js. Use Bun to import this entrypoint.")
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function runtimeModuleIdForSpecifier() {
|
|
12
|
+
throw new Error("@opentui/core/runtime-plugin-support/configure is Bun-only and is not available in Node.js. Use Bun to import this entrypoint.")
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
throw new Error(errorMessage)
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ensureRuntimePluginSupport } from "./runtime-plugin-support-configure.js";
|
|
2
|
+
export { ensureRuntimePluginSupport };
|
|
3
|
+
export { createRuntimePlugin, runtimeModuleIdForSpecifier, type CreateRuntimePluginOptions, type RuntimeModuleEntry, type RuntimeModuleExports, type RuntimeModuleLoader, } from "./runtime-plugin-support-configure.js";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ensureRuntimePluginSupport } from "./runtime-plugin-support-configure.js";
|
|
2
|
+
export { ensureRuntimePluginSupport };
|
|
3
|
+
export { createRuntimePlugin, runtimeModuleIdForSpecifier, } from "./runtime-plugin-support-configure.js";
|
|
4
|
+
ensureRuntimePluginSupport();
|
|
5
|
+
//# sourceMappingURL=runtime-plugin-support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-plugin-support.js","sourceRoot":"","sources":["runtime-plugin-support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAElF,OAAO,EAAE,0BAA0B,EAAE,CAAA;AACrC,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAK5B,MAAM,uCAAuC,CAAA;AAE9C,0BAA0B,EAAE,CAAA"}
|