buninu-linux 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/LICENSES/Bun-LICENSE.md +84 -0
- package/LICENSES/GCC-Runtime-Library-Exception-3.1.txt +73 -0
- package/LICENSES/GPL-2.0.txt +338 -0
- package/LICENSES/GPL-3.0.txt +674 -0
- package/LICENSES/LGPL-2.1.txt +501 -0
- package/LICENSES/Linux-syscall-note.txt +25 -0
- package/LICENSES/musl-COPYRIGHT.txt +193 -0
- package/NOTICE.md +184 -0
- package/README.md +537 -0
- package/build-image.sh +44 -0
- package/build-uki.sh +75 -0
- package/fetch-alpine.sh +80 -0
- package/fetch-bun.sh +41 -0
- package/fetch-plus-build.sh +11 -0
- package/hello/build-hello.sh +14 -0
- package/hello/hello.c +50 -0
- package/index.js +235 -0
- package/initramfs/bin/sh +3 -0
- package/initramfs/buninu/.bashrc +11 -0
- package/initramfs/buninu/ARCHITECTURE.md +452 -0
- package/initramfs/buninu/CHANGELOG.md +580 -0
- package/initramfs/buninu/LICENSE +21 -0
- package/initramfs/buninu/README.md +1161 -0
- package/initramfs/buninu/apps/bun/make-bunBin.sh +99 -0
- package/initramfs/buninu/apps/bunmsh/CHANGELOG.md +493 -0
- package/initramfs/buninu/apps/bunmsh/LICENSE +21 -0
- package/initramfs/buninu/apps/bunmsh/LICENSE-MICRO +58 -0
- package/initramfs/buninu/apps/bunmsh/LICENSE-MKSH +295 -0
- package/initramfs/buninu/apps/bunmsh/PORTING.md +192 -0
- package/initramfs/buninu/apps/bunmsh/README.md +1042 -0
- package/initramfs/buninu/apps/bunmsh/bunmsh +7 -0
- package/initramfs/buninu/apps/bunmsh/bunshell.md +61 -0
- package/initramfs/buninu/apps/bunmsh/help/README.md +2237 -0
- package/initramfs/buninu/apps/bunmsh/help/alias.md +22 -0
- package/initramfs/buninu/apps/bunmsh/help/basename.md +38 -0
- package/initramfs/buninu/apps/bunmsh/help/builtin.md +25 -0
- package/initramfs/buninu/apps/bunmsh/help/bun.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/bunmsh.md +47 -0
- package/initramfs/buninu/apps/bunmsh/help/cat.md +31 -0
- package/initramfs/buninu/apps/bunmsh/help/catfancy.md +35 -0
- package/initramfs/buninu/apps/bunmsh/help/cd.md +22 -0
- package/initramfs/buninu/apps/bunmsh/help/chmod.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/clear.md +21 -0
- package/initramfs/buninu/apps/bunmsh/help/colon.md +22 -0
- package/initramfs/buninu/apps/bunmsh/help/command.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/cp.md +28 -0
- package/initramfs/buninu/apps/bunmsh/help/curl.md +181 -0
- package/initramfs/buninu/apps/bunmsh/help/cut.md +25 -0
- package/initramfs/buninu/apps/bunmsh/help/date.md +25 -0
- package/initramfs/buninu/apps/bunmsh/help/dirname.md +25 -0
- package/initramfs/buninu/apps/bunmsh/help/echo.md +25 -0
- package/initramfs/buninu/apps/bunmsh/help/env.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/eval.md +22 -0
- package/initramfs/buninu/apps/bunmsh/help/exec.md +22 -0
- package/initramfs/buninu/apps/bunmsh/help/exit.md +21 -0
- package/initramfs/buninu/apps/bunmsh/help/export.md +22 -0
- package/initramfs/buninu/apps/bunmsh/help/false.md +22 -0
- package/initramfs/buninu/apps/bunmsh/help/find.md +33 -0
- package/initramfs/buninu/apps/bunmsh/help/getopts.md +28 -0
- package/initramfs/buninu/apps/bunmsh/help/grep.md +34 -0
- package/initramfs/buninu/apps/bunmsh/help/head.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/kill.md +43 -0
- package/initramfs/buninu/apps/bunmsh/help/ln.md +28 -0
- package/initramfs/buninu/apps/bunmsh/help/ls.md +37 -0
- package/initramfs/buninu/apps/bunmsh/help/lsbun.md +29 -0
- package/initramfs/buninu/apps/bunmsh/help/lsfancy.md +37 -0
- package/initramfs/buninu/apps/bunmsh/help/md5sum.md +21 -0
- package/initramfs/buninu/apps/bunmsh/help/mkdir.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/mktemp.md +26 -0
- package/initramfs/buninu/apps/bunmsh/help/mv.md +26 -0
- package/initramfs/buninu/apps/bunmsh/help/print.md +30 -0
- package/initramfs/buninu/apps/bunmsh/help/printf.md +25 -0
- package/initramfs/buninu/apps/bunmsh/help/pspa.md +38 -0
- package/initramfs/buninu/apps/bunmsh/help/pspac.md +57 -0
- package/initramfs/buninu/apps/bunmsh/help/pwd.md +21 -0
- package/initramfs/buninu/apps/bunmsh/help/read.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/readonly.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/realpath.md +21 -0
- package/initramfs/buninu/apps/bunmsh/help/rm.md +33 -0
- package/initramfs/buninu/apps/bunmsh/help/rmdir.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/sed.md +29 -0
- package/initramfs/buninu/apps/bunmsh/help/seq.md +29 -0
- package/initramfs/buninu/apps/bunmsh/help/serve.md +50 -0
- package/initramfs/buninu/apps/bunmsh/help/set.md +26 -0
- package/initramfs/buninu/apps/bunmsh/help/sha256sum.md +21 -0
- package/initramfs/buninu/apps/bunmsh/help/shift.md +23 -0
- package/initramfs/buninu/apps/bunmsh/help/sleep.md +25 -0
- package/initramfs/buninu/apps/bunmsh/help/sort.md +29 -0
- package/initramfs/buninu/apps/bunmsh/help/source.md +23 -0
- package/initramfs/buninu/apps/bunmsh/help/tab.md +30 -0
- package/initramfs/buninu/apps/bunmsh/help/tac.md +29 -0
- package/initramfs/buninu/apps/bunmsh/help/tail.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/tee.md +25 -0
- package/initramfs/buninu/apps/bunmsh/help/test.md +30 -0
- package/initramfs/buninu/apps/bunmsh/help/time.md +29 -0
- package/initramfs/buninu/apps/bunmsh/help/touch.md +26 -0
- package/initramfs/buninu/apps/bunmsh/help/tr.md +26 -0
- package/initramfs/buninu/apps/bunmsh/help/true.md +22 -0
- package/initramfs/buninu/apps/bunmsh/help/type.md +21 -0
- package/initramfs/buninu/apps/bunmsh/help/umask.md +22 -0
- package/initramfs/buninu/apps/bunmsh/help/unalias.md +28 -0
- package/initramfs/buninu/apps/bunmsh/help/uname.md +31 -0
- package/initramfs/buninu/apps/bunmsh/help/unset.md +28 -0
- package/initramfs/buninu/apps/bunmsh/help/wc.md +27 -0
- package/initramfs/buninu/apps/bunmsh/help/whence.md +26 -0
- package/initramfs/buninu/apps/bunmsh/help/which.md +41 -0
- package/initramfs/buninu/apps/bunmsh/help/yes.md +23 -0
- package/initramfs/buninu/apps/bunmsh/index.js +7 -0
- package/initramfs/buninu/apps/bunmsh/package.json +30 -0
- package/initramfs/buninu/apps/bunmsh/serve.js +468 -0
- package/initramfs/buninu/apps/bunmsh/single-exe/README.md +402 -0
- package/initramfs/buninu/apps/bunmsh/single-exe/assetsHelper.js +371 -0
- package/initramfs/buninu/apps/bunmsh/single-exe/assetsLoader.mjs +85 -0
- package/initramfs/buninu/apps/bunmsh/single-exe/assetsPacker.js +218 -0
- package/initramfs/buninu/apps/bunmsh/single-exe/compiled.js +527 -0
- package/initramfs/buninu/apps/bunmsh/single-exe/entry.mjs +17 -0
- package/initramfs/buninu/apps/bunmsh/src/cat-fancy.js +117 -0
- package/initramfs/buninu/apps/bunmsh/src/cat-operands.js +31 -0
- package/initramfs/buninu/apps/bunmsh/src/completion.js +363 -0
- package/initramfs/buninu/apps/bunmsh/src/curl.js +1191 -0
- package/initramfs/buninu/apps/bunmsh/src/environment.js +61 -0
- package/initramfs/buninu/apps/bunmsh/src/fancy-ls.js +186 -0
- package/initramfs/buninu/apps/bunmsh/src/find.js +119 -0
- package/initramfs/buninu/apps/bunmsh/src/history.js +198 -0
- package/initramfs/buninu/apps/bunmsh/src/main.js +850 -0
- package/initramfs/buninu/apps/bunmsh/src/mouse.js +103 -0
- package/initramfs/buninu/apps/bunmsh/src/shell.js +3932 -0
- package/initramfs/buninu/apps/bunmsh/test/catfancy.test.js +102 -0
- package/initramfs/buninu/apps/bunmsh/test/curl.test.js +335 -0
- package/initramfs/buninu/apps/bunmsh/test/reference-source.sh +1 -0
- package/initramfs/buninu/apps/bunmsh/test/reference.test.js +817 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/README.md +3 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/bad.json +1 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.json +1 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.json5 +1 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.jsonc +2 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.jsonl +2 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.ndjson +1 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.toml +3 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.ts +15 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.xml +1 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.yaml +3 -0
- package/initramfs/buninu/apps/bunmsh/test/serve/data.yml +1 -0
- package/initramfs/buninu/apps/bunmsh/test/serve.test.js +241 -0
- package/initramfs/buninu/apps/bunmsh/test/shell.test.js +2092 -0
- package/initramfs/buninu/apps/bunmsh/test/shell1.test.js +1087 -0
- package/initramfs/buninu/apps/bunmsh/test/shell2.test.js +457 -0
- package/initramfs/buninu/apps/bunmsh/test/shell3.test.js +741 -0
- package/initramfs/buninu/apps/bunmsh/test/t.sh +12 -0
- package/initramfs/buninu/apps/bunx/bunx.js +172 -0
- package/initramfs/buninu/apps/cmdlist +48 -0
- package/initramfs/buninu/apps/jsgotty/LICENSE +23 -0
- package/initramfs/buninu/apps/jsgotty/LICENSES/Apache-2.0-zmodem.js.txt +201 -0
- package/initramfs/buninu/apps/jsgotty/NOTICE +21 -0
- package/initramfs/buninu/apps/jsgotty/README.en.md +294 -0
- package/initramfs/buninu/apps/jsgotty/README.md +296 -0
- package/initramfs/buninu/apps/jsgotty/client.mjs +700 -0
- package/initramfs/buninu/apps/jsgotty/env.sh +2 -0
- package/initramfs/buninu/apps/jsgotty/gotty.js +3334 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/.package-lock.json +35 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/LICENSE.md +9 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/README.md +319 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/common.gypi +20 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/except.gypi +25 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/index.js +12 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/napi-inl.deprecated.h +186 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/napi-inl.h +6607 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/napi.h +3201 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/node_addon_api.gyp +32 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/node_api.gyp +9 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/noexcept.gypi +26 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/nothing.c +0 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/package-support.json +21 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/package.json +480 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/tools/README.md +73 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/tools/check-napi.js +99 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/tools/clang-format.js +71 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/tools/conversion.js +301 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/node-addon-api/tools/eslint-format.js +79 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/LICENSE +20 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/README.md +548 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/browser.js +8 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/index.js +22 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/buffer-util.js +131 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/constants.js +19 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/event-target.js +292 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/extension.js +203 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/limiter.js +55 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/permessage-deflate.js +528 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/receiver.js +760 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/sender.js +607 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/stream.js +161 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/subprotocol.js +62 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/validation.js +152 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/websocket-server.js +562 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/lib/websocket.js +1407 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/package.json +70 -0
- package/initramfs/buninu/apps/jsgotty/node_modules/ws/wrapper.mjs +21 -0
- package/initramfs/buninu/apps/jsgotty/package-lock.json +46 -0
- package/initramfs/buninu/apps/jsgotty/package.json +19 -0
- package/initramfs/buninu/apps/jsgotty/patches/windowsPtyAgent.js +326 -0
- package/initramfs/buninu/apps/jsgotty/patches/windowsTerminal.js +204 -0
- package/initramfs/buninu/apps/jsgotty/rz.js +199 -0
- package/initramfs/buninu/apps/jsgotty/single-exe/README.md +384 -0
- package/initramfs/buninu/apps/jsgotty/single-exe/assetsHelper.js +371 -0
- package/initramfs/buninu/apps/jsgotty/single-exe/assetsLoader.mjs +85 -0
- package/initramfs/buninu/apps/jsgotty/single-exe/assetsPacker.js +218 -0
- package/initramfs/buninu/apps/jsgotty/single-exe/compiled.js +498 -0
- package/initramfs/buninu/apps/jsgotty/single-exe/entry.mjs +23 -0
- package/initramfs/buninu/apps/jsgotty/single-exe/packAssets.sh +7 -0
- package/initramfs/buninu/apps/jsgotty/static/css/index.css +13 -0
- package/initramfs/buninu/apps/jsgotty/static/css/kitty.css +61 -0
- package/initramfs/buninu/apps/jsgotty/static/css/xterm.css +218 -0
- package/initramfs/buninu/apps/jsgotty/static/css/xterm_customize.css +35 -0
- package/initramfs/buninu/apps/jsgotty/static/favicon.ico +0 -0
- package/initramfs/buninu/apps/jsgotty/static/help.md +125 -0
- package/initramfs/buninu/apps/jsgotty/static/icon.svg +66 -0
- package/initramfs/buninu/apps/jsgotty/static/icon_192.png +0 -0
- package/initramfs/buninu/apps/jsgotty/static/index.html +164 -0
- package/initramfs/buninu/apps/jsgotty/static/js/gotty.js +31537 -0
- package/initramfs/buninu/apps/jsgotty/static/js/gotty.js.LICENSE.txt +7 -0
- package/initramfs/buninu/apps/jsgotty/static/js/gotty.js.map +1 -0
- package/initramfs/buninu/apps/jsgotty/static/js/gotty.licenses.txt +650 -0
- package/initramfs/buninu/apps/jsgotty/static/js/kitty.js +1101 -0
- package/initramfs/buninu/apps/jsgotty/static/js/windows_bridge.js +194 -0
- package/initramfs/buninu/apps/jsgotty/static/js/xterm-addon-unicode11.js +2 -0
- package/initramfs/buninu/apps/jsgotty/static/js/zmodem.js +1 -0
- package/initramfs/buninu/apps/jsgotty/static/manifest.json +15 -0
- package/initramfs/buninu/apps/jsgotty/sz.js +273 -0
- package/initramfs/buninu/apps/jsgotty/tests/kitty-order.test.js +58 -0
- package/initramfs/buninu/apps/jsgotty/tests/websocket-origin.test.js +54 -0
- package/initramfs/buninu/apps/jsgotty/viu.mjs +422 -0
- package/initramfs/buninu/apps/jsgotty/wgotty +62 -0
- package/initramfs/buninu/apps/jsgotty/windows-bridge-node.js +60 -0
- package/initramfs/buninu/apps/jsgotty/zmodem-node.js +262 -0
- package/initramfs/buninu/apps/jsmdcui/CHANGELOG.md +1118 -0
- package/initramfs/buninu/apps/jsmdcui/LICENSE +22 -0
- package/initramfs/buninu/apps/jsmdcui/README.md +1283 -0
- package/initramfs/buninu/apps/jsmdcui/cdp-maze.js +141 -0
- package/initramfs/buninu/apps/jsmdcui/clean.sh +9 -0
- package/initramfs/buninu/apps/jsmdcui/demos/basic.jpg +0 -0
- package/initramfs/buninu/apps/jsmdcui/demos/chinese.md +32 -0
- package/initramfs/buninu/apps/jsmdcui/demos/event.md +170 -0
- package/initramfs/buninu/apps/jsmdcui/demos/good.jpg +0 -0
- package/initramfs/buninu/apps/jsmdcui/demos/image-processor.md +366 -0
- package/initramfs/buninu/apps/jsmdcui/demos/image-processor.zh-TW.md +366 -0
- package/initramfs/buninu/apps/jsmdcui/demos/img-change.md +73 -0
- package/initramfs/buninu/apps/jsmdcui/demos/imgtool-zh.md +298 -0
- package/initramfs/buninu/apps/jsmdcui/demos/imgtool.md +298 -0
- package/initramfs/buninu/apps/jsmdcui/demos/maze.md +149 -0
- package/initramfs/buninu/apps/jsmdcui/demos/reactive.md +40 -0
- package/initramfs/buninu/apps/jsmdcui/demos/reader.md +513 -0
- package/initramfs/buninu/apps/jsmdcui/demos/select.md +63 -0
- package/initramfs/buninu/apps/jsmdcui/demos/todo-zh.md +190 -0
- package/initramfs/buninu/apps/jsmdcui/demos/todo.md +191 -0
- package/initramfs/buninu/apps/jsmdcui/edit +9 -0
- package/initramfs/buninu/apps/jsmdcui/jsmdcui.sh +16 -0
- package/initramfs/buninu/apps/jsmdcui/llm-maze.txt +94 -0
- package/initramfs/buninu/apps/jsmdcui/package.json +29 -0
- package/initramfs/buninu/apps/jsmdcui/project_structure.txt +35 -0
- package/initramfs/buninu/apps/jsmdcui/runmd.mjs +1140 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/atom-dark.micro +33 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/bubblegum.micro +31 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/cmc-16.micro +47 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/cmc-tc.micro +43 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/darcula.micro +34 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/default.micro +1 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/dracula-tc.micro +49 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/dukedark-tc.micro +38 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/dukelight-tc.micro +38 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/dukeubuntu-tc.micro +38 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/geany.micro +29 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/gotham.micro +29 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/gruvbox-tc.micro +29 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/gruvbox.micro +26 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/material-tc.micro +36 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/monokai-dark.micro +28 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/monokai.micro +34 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/one-dark.micro +39 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/railscast.micro +37 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/simple.micro +33 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/solarized-tc.micro +31 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/solarized.micro +30 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/sunny-day.micro +29 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/twilight.micro +40 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/colorschemes/zenburn.micro +30 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/actions.md +161 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/cdp.md +130 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/colors.md +421 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/commands.md +161 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/copypaste.md +149 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/defaultkeys.md +148 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/help.md +1283 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/keybindings.md +355 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/linter.md +90 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/options.md +709 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/plugins.md +544 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/help/tutorial.md +112 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/jsplugins/cdp/cdp-server.js +1263 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/jsplugins/cdp/cdp.js +203 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/jsplugins/chapter/chapter.js +111 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/jsplugins/diff/diff.js +46 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/jsplugins/example/example.js +117 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/jsplugins/linter/linter.js +281 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/plugins/autoclose/autoclose.lua +75 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/plugins/ftoptions/ftoptions.lua +17 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/plugins/literate/README.md +5 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/plugins/literate/literate.lua +55 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/plugins/status/help/status.md +21 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/plugins/status/status.lua +62 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/LICENSE +22 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/PowerShell.yaml +128 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/README.md +63 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/ada.yaml +43 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/apacheconf.yaml +59 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/arduino.yaml +101 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/asciidoc.yaml +51 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/asm.yaml +123 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/ats.yaml +99 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/awk.yaml +44 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/b.yaml +87 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/bat.yaml +57 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/c.yaml +60 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/caddyfile.yaml +23 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/cake.yaml +7 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/clojure.yaml +38 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/cmake.yaml +42 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/coffeescript.yaml +56 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/colortest.yaml +19 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/conky.yaml +17 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/cpp.yaml +91 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/crontab.yaml +36 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/crystal.yaml +72 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/csharp.yaml +52 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/css.yaml +44 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/csx.yaml +8 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/cuda.yaml +68 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/cython.yaml +52 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/d.yaml +121 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/dart.yaml +46 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/default.yaml +10 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/dockerfile.yaml +36 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/dot.yaml +29 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/elixir.yaml +30 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/elm.yaml +38 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/erb.yaml +42 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/erlang.yaml +45 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/fish.yaml +48 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/forth.yaml +34 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/fortran.yaml +64 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/freebsd-kernel.yaml +14 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/fsharp.yaml +48 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/gdscript.yaml +61 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/gemini.yaml +19 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/gentoo-ebuild.yaml +48 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/gentoo-etc-portage.yaml +23 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/git-commit.yaml +35 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/git-config.yaml +14 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/git-rebase-todo.yaml +19 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/gleam.yaml +69 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/glsl.yaml +26 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/gnuplot.yaml +15 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/go.yaml +62 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/godoc.yaml +17 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/golo.yaml +73 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/gomod.yaml +31 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/graphql.yaml +47 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/groff.yaml +30 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/groovy.yaml +111 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/haml.yaml +16 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/hare.yaml +52 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/haskell.yaml +52 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/hc.yaml +52 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/html.yaml +70 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/html4.yaml +25 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/html5.yaml +25 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/ini.yaml +23 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/inputrc.yaml +14 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/java.yaml +37 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/javascript.yaml +124 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/jinja2.yaml +19 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/json.yaml +39 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/jsonnet.yaml +92 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/julia.yaml +57 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/justfile.yaml +40 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/keymap.yaml +27 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/kickstart.yaml +16 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/kotlin.yaml +66 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/kvlang.yaml +67 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/ledger.yaml +14 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/lfe.yaml +17 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/lilypond.yaml +26 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/lisp.yaml +17 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/log.yaml +92 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/lua.yaml +111 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/mail.yaml +25 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/makefile.yaml +38 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/man.yaml +12 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/markdown.yaml +65 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/mc.yaml +23 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/meson.yaml +51 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/micro.yaml +34 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/mpdconf.yaml +13 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/msbuild.yaml +6 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/nanorc.yaml +16 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/nftables.yaml +30 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/nginx.yaml +22 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/nim.yaml +27 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/nix.yaml +32 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/nu.yaml +114 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/objc.yaml +60 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/ocaml.yaml +43 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/octave.yaml +83 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/odin.yaml +64 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/pascal.yaml +45 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/patch.yaml +14 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/peg.yaml +16 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/perl.yaml +58 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/php.yaml +60 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/pkg-config.yaml +12 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/po.yaml +12 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/pony.yaml +37 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/pov.yaml +21 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/privoxy-action.yaml +14 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/privoxy-config.yaml +10 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/privoxy-filter.yaml +12 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/proto.yaml +40 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/prql.yaml +84 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/puppet.yaml +22 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/python2.yaml +60 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/python3.yaml +80 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/r.yaml +32 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/raku.yaml +42 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/reST.yaml +18 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/renpy.yaml +15 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/rpmspec.yaml +43 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/ruby.yaml +73 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/rust.yaml +78 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/sage.yaml +60 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/scad.yaml +53 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/scala.yaml +33 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/sed.yaml +13 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/sh.yaml +69 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/sls.yaml +15 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/smalltalk.yaml +55 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/solidity.yaml +41 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/sql.yaml +35 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/stata.yaml +67 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/svelte.yaml +27 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/swift.yaml +103 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/systemd.yaml +16 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/tcl.yaml +18 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/terraform.yaml +87 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/tex.yaml +32 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/toml.yaml +56 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/twig.yaml +55 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/typescript.yaml +49 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/v.yaml +80 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/vala.yaml +26 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/verilog.yaml +60 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/vhdl.yaml +37 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/vi.yaml +31 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/vue.yaml +64 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/xml.yaml +37 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/xresources.yaml +14 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/yaml.yaml +34 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/yum.yaml +12 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/zig.yaml +52 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/zscript.yaml +72 -0
- package/initramfs/buninu/apps/jsmdcui/runtime/syntax/zsh.yaml +52 -0
- package/initramfs/buninu/apps/jsmdcui/single-exe/README.md +396 -0
- package/initramfs/buninu/apps/jsmdcui/single-exe/assetsHelper.js +371 -0
- package/initramfs/buninu/apps/jsmdcui/single-exe/assetsLoader.mjs +85 -0
- package/initramfs/buninu/apps/jsmdcui/single-exe/assetsPacker.js +218 -0
- package/initramfs/buninu/apps/jsmdcui/single-exe/compiled.js +498 -0
- package/initramfs/buninu/apps/jsmdcui/single-exe/entry.mjs +17 -0
- package/initramfs/buninu/apps/jsmdcui/single-exe/packAssets.sh +7 -0
- package/initramfs/buninu/apps/jsmdcui/src/MDCUI_DEFAULT_EDIT +0 -0
- package/initramfs/buninu/apps/jsmdcui/src/buffer/backup.js +165 -0
- package/initramfs/buninu/apps/jsmdcui/src/buffer/buffer.js +126 -0
- package/initramfs/buninu/apps/jsmdcui/src/buffer/fixed3-codec.js +140 -0
- package/initramfs/buninu/apps/jsmdcui/src/buffer/loc.js +38 -0
- package/initramfs/buninu/apps/jsmdcui/src/buffer/message.js +29 -0
- package/initramfs/buninu/apps/jsmdcui/src/build-args.js +40 -0
- package/initramfs/buninu/apps/jsmdcui/src/config/clean.js +172 -0
- package/initramfs/buninu/apps/jsmdcui/src/config/colorscheme.js +99 -0
- package/initramfs/buninu/apps/jsmdcui/src/config/config.js +125 -0
- package/initramfs/buninu/apps/jsmdcui/src/config/defaults.js +109 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/fence-events.mjs +144 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/heading-ids.mjs +1568 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/id-collision.mjs +111 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/identity.mjs +26 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/kitty-debug.mjs +25 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/kitty-images.mjs +280 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/kitty-mode.mjs +6 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/rerender-queue.mjs +66 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/rpc.mjs +1554 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/server.mjs +128 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/table-render.mjs +286 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/table-row-edit.mjs +226 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/task-checkbox.mjs +60 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/template-components.mjs +253 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/text-block-resize.mjs +177 -0
- package/initramfs/buninu/apps/jsmdcui/src/cui/tui-links.mjs +560 -0
- package/initramfs/buninu/apps/jsmdcui/src/display/ansi-style.js +60 -0
- package/initramfs/buninu/apps/jsmdcui/src/highlight/highlighter.js +243 -0
- package/initramfs/buninu/apps/jsmdcui/src/highlight/parser.js +225 -0
- package/initramfs/buninu/apps/jsmdcui/src/index.js +9586 -0
- package/initramfs/buninu/apps/jsmdcui/src/lua/engine.js +68 -0
- package/initramfs/buninu/apps/jsmdcui/src/platform/archive.js +50 -0
- package/initramfs/buninu/apps/jsmdcui/src/platform/clipboard.js +278 -0
- package/initramfs/buninu/apps/jsmdcui/src/platform/commands.js +221 -0
- package/initramfs/buninu/apps/jsmdcui/src/platform/terminal.js +5 -0
- package/initramfs/buninu/apps/jsmdcui/src/plugins/js-bridge.js +3377 -0
- package/initramfs/buninu/apps/jsmdcui/src/plugins/manager.js +674 -0
- package/initramfs/buninu/apps/jsmdcui/src/runtime/encodings.js +10 -0
- package/initramfs/buninu/apps/jsmdcui/src/runtime/registry.js +134 -0
- package/initramfs/buninu/apps/jsmdcui/src/screen/cell-buffer.js +81 -0
- package/initramfs/buninu/apps/jsmdcui/src/screen/events.js +263 -0
- package/initramfs/buninu/apps/jsmdcui/src/screen/screen.js +249 -0
- package/initramfs/buninu/apps/jsmdcui/src/screen/vt100.js +571 -0
- package/initramfs/buninu/apps/jsmdcui/src/shell/shell.js +70 -0
- package/initramfs/buninu/apps/jsmdcui/testapp.md +78 -0
- package/initramfs/buninu/apps/jsmdcui/tests/assets-helper.test.js +150 -0
- package/initramfs/buninu/apps/jsmdcui/tests/backup.test.js +158 -0
- package/initramfs/buninu/apps/jsmdcui/tests/cat-markdown.test.js +139 -0
- package/initramfs/buninu/apps/jsmdcui/tests/cdp-security.test.js +32 -0
- package/initramfs/buninu/apps/jsmdcui/tests/cdp-websocket-test.html +46 -0
- package/initramfs/buninu/apps/jsmdcui/tests/cmphex3b64.js +95 -0
- package/initramfs/buninu/apps/jsmdcui/tests/compiled-runtime.test.js +139 -0
- package/initramfs/buninu/apps/jsmdcui/tests/config-settings.test.js +52 -0
- package/initramfs/buninu/apps/jsmdcui/tests/demo.test.js +448 -0
- package/initramfs/buninu/apps/jsmdcui/tests/docs-sync.test.js +14 -0
- package/initramfs/buninu/apps/jsmdcui/tests/fence-events.test.js +1293 -0
- package/initramfs/buninu/apps/jsmdcui/tests/heading-ids.test.js +559 -0
- package/initramfs/buninu/apps/jsmdcui/tests/heading-list-selector.test.js +2393 -0
- package/initramfs/buninu/apps/jsmdcui/tests/id-collision.test.js +514 -0
- package/initramfs/buninu/apps/jsmdcui/tests/jmigt.js +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/js-plugin-prompts.test.js +110 -0
- package/initramfs/buninu/apps/jsmdcui/tests/key-event.md +10 -0
- package/initramfs/buninu/apps/jsmdcui/tests/kitty-demo.md +184 -0
- package/initramfs/buninu/apps/jsmdcui/tests/kitty-images.test.js +288 -0
- package/initramfs/buninu/apps/jsmdcui/tests/kitty-mode.test.js +14 -0
- package/initramfs/buninu/apps/jsmdcui/tests/platform-commands.test.js +18 -0
- package/initramfs/buninu/apps/jsmdcui/tests/platform-terminal.test.js +8 -0
- package/initramfs/buninu/apps/jsmdcui/tests/pty-demo.js +492 -0
- package/initramfs/buninu/apps/jsmdcui/tests/rerender-queue.test.js +130 -0
- package/initramfs/buninu/apps/jsmdcui/tests/table-render.test.js +150 -0
- package/initramfs/buninu/apps/jsmdcui/tests/table-row-edit.test.js +138 -0
- package/initramfs/buninu/apps/jsmdcui/tests/task-checkbox.test.js +33 -0
- package/initramfs/buninu/apps/jsmdcui/tests/template-components.test.js +422 -0
- package/initramfs/buninu/apps/jsmdcui/tests/text-block-resize.test.js +222 -0
- package/initramfs/buninu/apps/jsmdcui/tests/textarea.md +8 -0
- package/initramfs/buninu/apps/jsmdcui/tests/tui-links.test.js +298 -0
- package/initramfs/buninu/apps/jsmdcui/tests/wui-responsive-images.test.js +60 -0
- package/initramfs/buninu/apps/jsmdcui/tests/wui.test.js +108 -0
- package/initramfs/buninu/apps/jsmdcui/tests/wv-client.js +96 -0
- package/initramfs/buninu/apps/jsmdcui/tui +7 -0
- package/initramfs/buninu/apps/jsmdcui/wui +9 -0
- package/initramfs/buninu/apps/musl-la/LICENSES/GPL-3.0.txt +674 -0
- package/initramfs/buninu/apps/musl-la/LICENSES/gcc_runtime_exception.txt +73 -0
- package/initramfs/buninu/apps/musl-la/LICENSE_musl.txt +193 -0
- package/initramfs/buninu/apps/musl-la/NOTICE +41 -0
- package/initramfs/buninu/apps/musl-la/ld-musl-aarch64.so.1 +0 -0
- package/initramfs/buninu/apps/musl-la/libgcc_s.so.1 +0 -0
- package/initramfs/buninu/apps/musl-la/libstdc++.so.6 +0 -0
- package/initramfs/buninu/apps/musl-la/musl-la.sh +36 -0
- package/initramfs/buninu/apps/native-bridge/native-bridge.js +199 -0
- package/initramfs/buninu/apps/native-bridge/package.json +8 -0
- package/initramfs/buninu/apps/tts/tts.js +214 -0
- package/initramfs/buninu/apps/xclip/xclip.js +121 -0
- package/initramfs/buninu/apps/xdg-open/xdg-open.js +151 -0
- package/initramfs/buninu/bin/bun.bat +37 -0
- package/initramfs/buninu/bin/bun.sh +57 -0
- package/initramfs/buninu/bin/buninu-help.bat +4 -0
- package/initramfs/buninu/bin/buninu-help.sh +7 -0
- package/initramfs/buninu/bin/bunmsh.bat +3 -0
- package/initramfs/buninu/bin/bunmsh.sh +5 -0
- package/initramfs/buninu/bin/bunx.bat +3 -0
- package/initramfs/buninu/bin/glow.bat +3 -0
- package/initramfs/buninu/bin/glow.sh +5 -0
- package/initramfs/buninu/bin/init.js +779 -0
- package/initramfs/buninu/bin/install.js +570 -0
- package/initramfs/buninu/bin/jmi.bat +3 -0
- package/initramfs/buninu/bin/jmi.sh +5 -0
- package/initramfs/buninu/bin/jsgotty.bat +3 -0
- package/initramfs/buninu/bin/jsgotty.sh +5 -0
- package/initramfs/buninu/bin/jsmdcui.bat +11 -0
- package/initramfs/buninu/bin/libsh-loader.c +135 -0
- package/initramfs/buninu/bin/libsh-loader.so +0 -0
- package/initramfs/buninu/bin/multicall.sh +103 -0
- package/initramfs/buninu/bin/native-bridge.bat +3 -0
- package/initramfs/buninu/bin/rz.bat +3 -0
- package/initramfs/buninu/bin/rz.sh +5 -0
- package/initramfs/buninu/bin/shc.js +5 -0
- package/initramfs/buninu/bin/showimg.bat +3 -0
- package/initramfs/buninu/bin/showimg.sh +5 -0
- package/initramfs/buninu/bin/switch_to_android.sh +9 -0
- package/initramfs/buninu/bin/switch_to_linux.sh +7 -0
- package/initramfs/buninu/bin/sz.bat +3 -0
- package/initramfs/buninu/bin/sz.sh +5 -0
- package/initramfs/buninu/bin/tts.bat +3 -0
- package/initramfs/buninu/bin/xclip.bat +3 -0
- package/initramfs/buninu/bin/xdg-open.bat +3 -0
- package/initramfs/buninu/demo-server.js +64 -0
- package/initramfs/buninu/icon.png +0 -0
- package/initramfs/buninu/package.json +59 -0
- package/initramfs/etc/resolv.conf +1 -0
- package/initramfs/init.js +339 -0
- package/initramfs/lib/ld-musl-x86_64.so.1 +0 -0
- package/initramfs/lib/libc.musl-x86_64.so.1 +0 -0
- package/initramfs/lib/libgcc_s.so.1 +0 -0
- package/initramfs/lib/libstdc++.so.6 +0 -0
- package/initramfs/usr/bin/env +7 -0
- package/package.json +42 -0
- package/run-qemu.sh +44 -0
- package/scripts/fetch.sh +26 -0
- package/scripts/pack-initramfs.sh +41 -0
- package/test/build-init-bootstrap.sh +23 -0
- package/test/init-bootstrap.c +55 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Kitty scrolling test
|
|
2
|
+
|
|
3
|
+
Prelude filler line 01
|
|
4
|
+
Prelude filler line 02
|
|
5
|
+
Prelude filler line 03
|
|
6
|
+
Prelude filler line 04
|
|
7
|
+
Prelude filler line 05
|
|
8
|
+
Prelude filler line 06
|
|
9
|
+
Prelude filler line 07
|
|
10
|
+
Prelude filler line 08
|
|
11
|
+
Prelude filler line 09
|
|
12
|
+
Prelude filler line 10
|
|
13
|
+
Prelude filler line 11
|
|
14
|
+
Prelude filler line 12
|
|
15
|
+
Prelude filler line 13
|
|
16
|
+
Prelude filler line 14
|
|
17
|
+
Prelude filler line 15
|
|
18
|
+
Prelude filler line 16
|
|
19
|
+
Prelude filler line 17
|
|
20
|
+
Prelude filler line 18
|
|
21
|
+
Prelude filler line 19
|
|
22
|
+
Prelude filler line 20
|
|
23
|
+
Prelude filler line 21
|
|
24
|
+
Prelude filler line 22
|
|
25
|
+
Prelude filler line 23
|
|
26
|
+
Prelude filler line 24
|
|
27
|
+
Prelude filler line 25
|
|
28
|
+
Prelude filler line 26
|
|
29
|
+
Prelude filler line 27
|
|
30
|
+
Prelude filler line 28
|
|
31
|
+
Prelude filler line 29
|
|
32
|
+
Prelude filler line 30
|
|
33
|
+
Prelude filler line 31
|
|
34
|
+
Prelude filler line 32
|
|
35
|
+
Prelude filler line 33
|
|
36
|
+
Prelude filler line 34
|
|
37
|
+
Prelude filler line 35
|
|
38
|
+
Prelude filler line 36
|
|
39
|
+
Prelude filler line 37
|
|
40
|
+
Prelude filler line 38
|
|
41
|
+
Prelude filler line 39
|
|
42
|
+
Prelude filler line 40
|
|
43
|
+
Prelude filler line 41
|
|
44
|
+
Prelude filler line 42
|
|
45
|
+
Prelude filler line 43
|
|
46
|
+
Prelude filler line 44
|
|
47
|
+
Prelude filler line 45
|
|
48
|
+
Prelude filler line 46
|
|
49
|
+
Prelude filler line 47
|
|
50
|
+
Prelude filler line 48
|
|
51
|
+
Prelude filler line 49
|
|
52
|
+
Prelude filler line 50
|
|
53
|
+
|
|
54
|
+
## Before image 01
|
|
55
|
+
Content before the image, line 01.
|
|
56
|
+
|
|
57
|
+
## Before image 02
|
|
58
|
+
Content before the image, line 02.
|
|
59
|
+
|
|
60
|
+
## Before image 03
|
|
61
|
+
Content before the image, line 03.
|
|
62
|
+
|
|
63
|
+
## Before image 04
|
|
64
|
+
Content before the image, line 04.
|
|
65
|
+
|
|
66
|
+
## Before image 05
|
|
67
|
+
Content before the image, line 05.
|
|
68
|
+
|
|
69
|
+
## Before image 06
|
|
70
|
+
Content before the image, line 06.
|
|
71
|
+
|
|
72
|
+
## Before image 07
|
|
73
|
+
Content before the image, line 07.
|
|
74
|
+
|
|
75
|
+
## Before image 08
|
|
76
|
+
Content before the image, line 08.
|
|
77
|
+
|
|
78
|
+
## Before image 09
|
|
79
|
+
Content before the image, line 09.
|
|
80
|
+
|
|
81
|
+
## Before image 10
|
|
82
|
+
Content before the image, line 10.
|
|
83
|
+
|
|
84
|
+
## Image anchor
|
|
85
|
+
|
|
86
|
+

|
|
87
|
+
|
|
88
|
+
## After image 01
|
|
89
|
+
Content after the image, line 01.
|
|
90
|
+
|
|
91
|
+
## After image 02
|
|
92
|
+
Content after the image, line 02.
|
|
93
|
+
|
|
94
|
+
## After image 03
|
|
95
|
+
Content after the image, line 03.
|
|
96
|
+
|
|
97
|
+
## After image 04
|
|
98
|
+
Content after the image, line 04.
|
|
99
|
+
|
|
100
|
+
## After image 05
|
|
101
|
+
Content after the image, line 05.
|
|
102
|
+
|
|
103
|
+
## After image 06
|
|
104
|
+
Content after the image, line 06.
|
|
105
|
+
|
|
106
|
+
## After image 07
|
|
107
|
+
Content after the image, line 07.
|
|
108
|
+
|
|
109
|
+
## After image 08
|
|
110
|
+
Content after the image, line 08.
|
|
111
|
+
|
|
112
|
+
## After image 09
|
|
113
|
+
Content after the image, line 09.
|
|
114
|
+
|
|
115
|
+
## After image 10
|
|
116
|
+
Content after the image, line 10.
|
|
117
|
+
|
|
118
|
+
## After image 11
|
|
119
|
+
Content after the image, line 11.
|
|
120
|
+
|
|
121
|
+
## After image 12
|
|
122
|
+
Content after the image, line 12.
|
|
123
|
+
|
|
124
|
+
## After image 13
|
|
125
|
+
Content after the image, line 13.
|
|
126
|
+
|
|
127
|
+
## After image 14
|
|
128
|
+
Content after the image, line 14.
|
|
129
|
+
|
|
130
|
+
## After image 15
|
|
131
|
+
Content after the image, line 15.
|
|
132
|
+
|
|
133
|
+

|
|
134
|
+
|
|
135
|
+
Epilogue filler line 01
|
|
136
|
+
Epilogue filler line 02
|
|
137
|
+
Epilogue filler line 03
|
|
138
|
+
Epilogue filler line 04
|
|
139
|
+
Epilogue filler line 05
|
|
140
|
+
Epilogue filler line 06
|
|
141
|
+
Epilogue filler line 07
|
|
142
|
+
Epilogue filler line 08
|
|
143
|
+
Epilogue filler line 09
|
|
144
|
+
Epilogue filler line 10
|
|
145
|
+
Epilogue filler line 11
|
|
146
|
+
Epilogue filler line 12
|
|
147
|
+
Epilogue filler line 13
|
|
148
|
+
Epilogue filler line 14
|
|
149
|
+
Epilogue filler line 15
|
|
150
|
+
Epilogue filler line 16
|
|
151
|
+
Epilogue filler line 17
|
|
152
|
+
Epilogue filler line 18
|
|
153
|
+
Epilogue filler line 19
|
|
154
|
+
Epilogue filler line 20
|
|
155
|
+
Epilogue filler line 21
|
|
156
|
+
Epilogue filler line 22
|
|
157
|
+
Epilogue filler line 23
|
|
158
|
+
Epilogue filler line 24
|
|
159
|
+
Epilogue filler line 25
|
|
160
|
+
Epilogue filler line 26
|
|
161
|
+
Epilogue filler line 27
|
|
162
|
+
Epilogue filler line 28
|
|
163
|
+
Epilogue filler line 29
|
|
164
|
+
Epilogue filler line 30
|
|
165
|
+
Epilogue filler line 31
|
|
166
|
+
Epilogue filler line 32
|
|
167
|
+
Epilogue filler line 33
|
|
168
|
+
Epilogue filler line 34
|
|
169
|
+
Epilogue filler line 35
|
|
170
|
+
Epilogue filler line 36
|
|
171
|
+
Epilogue filler line 37
|
|
172
|
+
Epilogue filler line 38
|
|
173
|
+
Epilogue filler line 39
|
|
174
|
+
Epilogue filler line 40
|
|
175
|
+
Epilogue filler line 41
|
|
176
|
+
Epilogue filler line 42
|
|
177
|
+
Epilogue filler line 43
|
|
178
|
+
Epilogue filler line 44
|
|
179
|
+
Epilogue filler line 45
|
|
180
|
+
Epilogue filler line 46
|
|
181
|
+
Epilogue filler line 47
|
|
182
|
+
Epilogue filler line 48
|
|
183
|
+
Epilogue filler line 49
|
|
184
|
+
Epilogue filler line 50
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import { expect, test } from "bun:test";
|
|
2
|
+
import { mkdtemp, writeFile } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
5
|
+
import { fitKittyImageToWidth, prepareKittyImages, renderAnsiWithDataImages } from "../src/cui/kitty-images.mjs";
|
|
6
|
+
import { Screen } from "../src/screen/screen.js";
|
|
7
|
+
|
|
8
|
+
const ONE_PIXEL_PNG = Buffer.from(
|
|
9
|
+
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=",
|
|
10
|
+
"base64",
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
test("Bun-rendered Markdown image links reserve rows and retain Kitty data", async () => {
|
|
14
|
+
const dir = await mkdtemp(join(tmpdir(), "jsmdcui-kitty-"));
|
|
15
|
+
const markdownPath = join(dir, "app.md");
|
|
16
|
+
await writeFile(join(dir, "pixel.png"), ONE_PIXEL_PNG);
|
|
17
|
+
const ansi = Bun.markdown.ansi("before\n\n\n\nafter\n", {
|
|
18
|
+
hyperlinks: true,
|
|
19
|
+
columns: 40,
|
|
20
|
+
});
|
|
21
|
+
const result = await prepareKittyImages(ansi, markdownPath, 40);
|
|
22
|
+
|
|
23
|
+
expect(result.images).toHaveLength(1);
|
|
24
|
+
expect(result.images[0]).toMatchObject({ mime: "image/png", cols: 1, rows: 1 });
|
|
25
|
+
expect(result.images[0].data.equals(ONE_PIXEL_PNG)).toBe(true);
|
|
26
|
+
expect(Bun.stripANSI(result.rendered)).toContain("📷 pixel");
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test("Kitty images accept base64 image data URLs", async () => {
|
|
30
|
+
const dataUrl = `data:image/png;base64,${ONE_PIXEL_PNG.toString("base64")}`;
|
|
31
|
+
const ansi = renderAnsiWithDataImages(``, {
|
|
32
|
+
hyperlinks: true,
|
|
33
|
+
columns: 40,
|
|
34
|
+
});
|
|
35
|
+
const result = await prepareKittyImages(ansi, "/tmp/app.md", 40);
|
|
36
|
+
|
|
37
|
+
expect(result.images).toHaveLength(1);
|
|
38
|
+
expect(result.images[0]).toMatchObject({
|
|
39
|
+
mime: "image/png",
|
|
40
|
+
path: "data:image/png",
|
|
41
|
+
});
|
|
42
|
+
expect(result.images[0].data.equals(ONE_PIXEL_PNG)).toBe(true);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test("Kitty images prefer lazily supplied compiled HTML bundle assets", async () => {
|
|
46
|
+
const dir = await mkdtemp(join(tmpdir(), "jsmdcui-kitty-bundled-"));
|
|
47
|
+
const bundledPath = join(dir, "pixel-bundled.png");
|
|
48
|
+
await writeFile(bundledPath, ONE_PIXEL_PNG);
|
|
49
|
+
const ansi = Bun.markdown.ansi("", {
|
|
50
|
+
hyperlinks: true,
|
|
51
|
+
columns: 40,
|
|
52
|
+
});
|
|
53
|
+
let imageMapRequests = 0;
|
|
54
|
+
const result = await prepareKittyImages(ansi, join(dir, "missing-app.md"), 40, {
|
|
55
|
+
getBundledImageMap: async () => {
|
|
56
|
+
imageMapRequests++;
|
|
57
|
+
return new Map([["./images/pixel.png?version=2#preview", bundledPath]]);
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
expect(imageMapRequests).toBe(1);
|
|
62
|
+
expect(result.images).toHaveLength(1);
|
|
63
|
+
expect(result.images[0].path).toBe(bundledPath);
|
|
64
|
+
expect(result.images[0].data.equals(ONE_PIXEL_PNG)).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test("Kitty images can switch away from and back to a compiled embedded asset", async () => {
|
|
68
|
+
const dir = await mkdtemp(join(tmpdir(), "jsmdcui-kitty-bundled-return-"));
|
|
69
|
+
const bundledPath = join(dir, "pixel-bundled.png");
|
|
70
|
+
const localPath = join(dir, "local.png");
|
|
71
|
+
await writeFile(bundledPath, ONE_PIXEL_PNG);
|
|
72
|
+
await writeFile(localPath, ONE_PIXEL_PNG);
|
|
73
|
+
const markdownPath = join(dir, "app.md");
|
|
74
|
+
const imageMap = new Map([["embedded.png", bundledPath]]);
|
|
75
|
+
let imageMapRequests = 0;
|
|
76
|
+
const options = {
|
|
77
|
+
getBundledImageMap: async () => {
|
|
78
|
+
imageMapRequests++;
|
|
79
|
+
return imageMap;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
const render = (href) => Bun.markdown.ansi(``, {
|
|
83
|
+
hyperlinks: true,
|
|
84
|
+
columns: 40,
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
const embeddedFirst = await prepareKittyImages(
|
|
88
|
+
render("embedded.png"), markdownPath, 40, options,
|
|
89
|
+
);
|
|
90
|
+
const local = await prepareKittyImages(
|
|
91
|
+
render("local.png"), markdownPath, 40, options,
|
|
92
|
+
);
|
|
93
|
+
const embeddedAgain = await prepareKittyImages(
|
|
94
|
+
render("embedded.png"), markdownPath, 40, options,
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
expect(embeddedFirst.images[0]?.path).toBe(bundledPath);
|
|
98
|
+
expect(local.images[0]?.path).toBe(localPath);
|
|
99
|
+
expect(embeddedAgain.images[0]?.path).toBe(bundledPath);
|
|
100
|
+
expect(embeddedAgain.images[0]?.data.equals(ONE_PIXEL_PNG)).toBe(true);
|
|
101
|
+
expect(imageMapRequests).toBe(3);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
test("Kitty compat converts compressed images to standard PNG payloads", async () => {
|
|
105
|
+
const dir = await mkdtemp(join(tmpdir(), "jsmdcui-kitty-compat-"));
|
|
106
|
+
const markdownPath = join(dir, "app.md");
|
|
107
|
+
const jpeg = Buffer.from(await new Bun.Image(ONE_PIXEL_PNG).jpeg().toBuffer());
|
|
108
|
+
await writeFile(join(dir, "pixel.jpg"), jpeg);
|
|
109
|
+
const ansi = Bun.markdown.ansi("", {
|
|
110
|
+
hyperlinks: true,
|
|
111
|
+
columns: 40,
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
const result = await prepareKittyImages(ansi, markdownPath, 40, {
|
|
115
|
+
kittyMode: "compat",
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
expect(result.images).toHaveLength(1);
|
|
119
|
+
expect(result.images[0].mime).toBe("image/png");
|
|
120
|
+
expect(result.images[0].data.subarray(0, 8).equals(Buffer.from([
|
|
121
|
+
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a,
|
|
122
|
+
]))).toBe(true);
|
|
123
|
+
expect(result.images[0].data.equals(jpeg)).toBe(false);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
test("remote Kitty images require allowUrl and use the configured HTTP byte fetcher", async () => {
|
|
127
|
+
const imageUrl = "https://example.test/assets/pixel.png";
|
|
128
|
+
const ansi = Bun.markdown.ansi(``, {
|
|
129
|
+
hyperlinks: true,
|
|
130
|
+
columns: 40,
|
|
131
|
+
});
|
|
132
|
+
const requests = [];
|
|
133
|
+
const fetchHttpBytes = async (url) => {
|
|
134
|
+
requests.push(url);
|
|
135
|
+
return ONE_PIXEL_PNG;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
const blocked = await prepareKittyImages(ansi, "/tmp/app.md", 40, { fetchHttpBytes });
|
|
139
|
+
expect(blocked.images).toHaveLength(0);
|
|
140
|
+
expect(requests).toHaveLength(0);
|
|
141
|
+
|
|
142
|
+
const allowed = await prepareKittyImages(ansi, "/tmp/app.md", 40, {
|
|
143
|
+
allowUrl: true,
|
|
144
|
+
fetchHttpBytes,
|
|
145
|
+
});
|
|
146
|
+
expect(requests).toEqual([imageUrl]);
|
|
147
|
+
expect(allowed.images).toHaveLength(1);
|
|
148
|
+
expect(allowed.images[0].path).toBe(imageUrl);
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
test("an unresponsive remote Kitty image cannot block rerender forever", async () => {
|
|
152
|
+
const imageUrl = "https://example.test/assets/stalled.png";
|
|
153
|
+
const ansi = Bun.markdown.ansi(``, {
|
|
154
|
+
hyperlinks: true,
|
|
155
|
+
columns: 40,
|
|
156
|
+
});
|
|
157
|
+
const result = await prepareKittyImages(ansi, "/tmp/app.md", 40, {
|
|
158
|
+
allowUrl: true,
|
|
159
|
+
remoteTimeoutMs: 5,
|
|
160
|
+
fetchHttpBytes: (url, { signal }) => new Promise(() => {
|
|
161
|
+
expect(url).toBe(imageUrl);
|
|
162
|
+
signal.addEventListener("abort", () => {}, { once: true });
|
|
163
|
+
}),
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
expect(result.rendered).toBe(ansi);
|
|
167
|
+
expect(result.images).toEqual([]);
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
test("remote Kitty images share one rerender timeout budget", async () => {
|
|
171
|
+
const urls = [1, 2, 3].map(
|
|
172
|
+
number => `https://example.test/assets/stalled-${number}.png`,
|
|
173
|
+
);
|
|
174
|
+
const ansi = Bun.markdown.ansi(
|
|
175
|
+
urls.map(url => ``).join("\n\n"),
|
|
176
|
+
{ hyperlinks: true, columns: 40 },
|
|
177
|
+
);
|
|
178
|
+
const signals = [];
|
|
179
|
+
const started = performance.now();
|
|
180
|
+
const result = await prepareKittyImages(ansi, "/tmp/app.md", 40, {
|
|
181
|
+
allowUrl: true,
|
|
182
|
+
remoteTimeoutMs: 20,
|
|
183
|
+
fetchHttpBytes: (url, { signal }) => {
|
|
184
|
+
signals.push({ url, signal });
|
|
185
|
+
return new Promise(() => {});
|
|
186
|
+
},
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
expect(performance.now() - started).toBeLessThan(100);
|
|
190
|
+
expect(signals).toHaveLength(1);
|
|
191
|
+
expect(signals[0].signal.aborted).toBe(true);
|
|
192
|
+
expect(result.images).toEqual([]);
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
test("remote Markdown resolves relative Kitty image URLs against its source URL", async () => {
|
|
196
|
+
const ansi = Bun.markdown.ansi("", {
|
|
197
|
+
hyperlinks: true,
|
|
198
|
+
columns: 40,
|
|
199
|
+
});
|
|
200
|
+
const requests = [];
|
|
201
|
+
const result = await prepareKittyImages(
|
|
202
|
+
ansi,
|
|
203
|
+
"https://example.test/docs/guide/app.md",
|
|
204
|
+
40,
|
|
205
|
+
{
|
|
206
|
+
allowUrl: true,
|
|
207
|
+
fetchHttpBytes: async (url) => {
|
|
208
|
+
requests.push(url);
|
|
209
|
+
return ONE_PIXEL_PNG;
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
);
|
|
213
|
+
|
|
214
|
+
expect(requests).toEqual(["https://example.test/docs/images/pixel.png?size=1"]);
|
|
215
|
+
expect(result.images).toHaveLength(1);
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
test("Kitty image sizing subtracts the gutter width without depending on remaining rows", () => {
|
|
219
|
+
// A 100-column pane with a 5-column gutter has 95 usable image columns.
|
|
220
|
+
expect(fitKittyImageToWidth({ cols: 100, rows: 40 }, 95)).toEqual({ cols: 95, rows: 38 });
|
|
221
|
+
expect(fitKittyImageToWidth({ cols: 62, rows: 21 }, 95)).toEqual({ cols: 62, rows: 21 });
|
|
222
|
+
expect(fitKittyImageToWidth({ cols: 62, rows: 21 }, 40)).toEqual({ cols: 40, rows: 14 });
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
test("Screen emits chunked Kitty placement at the requested cell and deletes only its IDs", () => {
|
|
226
|
+
const screen = new Screen({ mouse: false, kittyMode: "extended" });
|
|
227
|
+
const writes = [];
|
|
228
|
+
screen.write = (value) => writes.push(String(value));
|
|
229
|
+
screen.setKittyImages([{
|
|
230
|
+
id: 77,
|
|
231
|
+
x: 3,
|
|
232
|
+
y: 4,
|
|
233
|
+
cols: 5,
|
|
234
|
+
rows: 2,
|
|
235
|
+
sourceX: 0,
|
|
236
|
+
sourceY: 0,
|
|
237
|
+
sourceWidth: 1,
|
|
238
|
+
sourceHeight: 1,
|
|
239
|
+
mime: "image/png",
|
|
240
|
+
data: ONE_PIXEL_PNG,
|
|
241
|
+
}]);
|
|
242
|
+
screen.Show();
|
|
243
|
+
const first = writes.join("");
|
|
244
|
+
expect(first).toContain("\x1b[5;4H");
|
|
245
|
+
expect(first).toContain("\x1b_Ga=T,f=100,t=d,i=77,p=77,q=2,x=0,y=0,w=1,h=1,c=5,r=2,C=1,U=image/png,m=0;");
|
|
246
|
+
|
|
247
|
+
writes.length = 0;
|
|
248
|
+
screen.setKittyImages([]);
|
|
249
|
+
screen.Show();
|
|
250
|
+
expect(writes.join("")).toContain("\x1b_Ga=d,d=i,i=77,q=2;");
|
|
251
|
+
expect(writes.join("")).not.toContain("d=a");
|
|
252
|
+
|
|
253
|
+
writes.length = 0;
|
|
254
|
+
screen.setKittyImages([{
|
|
255
|
+
id: 77, x: 3, y: 2, cols: 5, rows: 2,
|
|
256
|
+
sourceX: 0, sourceY: 0, sourceWidth: 1, sourceHeight: 1,
|
|
257
|
+
mime: "image/png", data: ONE_PIXEL_PNG,
|
|
258
|
+
}]);
|
|
259
|
+
screen.Show();
|
|
260
|
+
const replaced = writes.join("");
|
|
261
|
+
expect(replaced).toContain("\x1b_Ga=p,i=77,p=77,q=2,x=0,y=0,w=1,h=1,c=5,r=2,C=1,U=image/png;");
|
|
262
|
+
expect(replaced).not.toContain("a=T");
|
|
263
|
+
expect(replaced).not.toContain(ONE_PIXEL_PNG.toString("base64"));
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
test("Screen gates Kitty output by mode and compat mode omits the MIME U extension", () => {
|
|
267
|
+
const image = {
|
|
268
|
+
id: 88, x: 0, y: 0, cols: 1, rows: 1,
|
|
269
|
+
sourceX: 0, sourceY: 0, sourceWidth: 1, sourceHeight: 1,
|
|
270
|
+
mime: "image/jpeg", data: ONE_PIXEL_PNG,
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
const off = new Screen({ mouse: false });
|
|
274
|
+
const offWrites = [];
|
|
275
|
+
off.write = (value) => offWrites.push(String(value));
|
|
276
|
+
off.setKittyImages([image]);
|
|
277
|
+
off.Show();
|
|
278
|
+
expect(offWrites.join("")).not.toContain("\x1b_G");
|
|
279
|
+
|
|
280
|
+
const compat = new Screen({ mouse: false, kittyMode: "compat" });
|
|
281
|
+
const compatWrites = [];
|
|
282
|
+
compat.write = (value) => compatWrites.push(String(value));
|
|
283
|
+
compat.setKittyImages([image]);
|
|
284
|
+
compat.Show();
|
|
285
|
+
const output = compatWrites.join("");
|
|
286
|
+
expect(output).toContain("\x1b_Ga=T");
|
|
287
|
+
expect(output).not.toContain("U=image/jpeg");
|
|
288
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { expect, test } from "bun:test";
|
|
2
|
+
import { kittyModeFromEnvironment } from "../src/cui/kitty-mode.mjs";
|
|
3
|
+
|
|
4
|
+
test("Kitty mode accepts supported environment values case-insensitively", () => {
|
|
5
|
+
expect(kittyModeFromEnvironment("compat")).toBe("compat");
|
|
6
|
+
expect(kittyModeFromEnvironment(" EXTENDED ")).toBe("extended");
|
|
7
|
+
expect(kittyModeFromEnvironment("off")).toBe("off");
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
test("Kitty mode defaults invalid or missing environment values to off", () => {
|
|
11
|
+
expect(kittyModeFromEnvironment()).toBe("off");
|
|
12
|
+
expect(kittyModeFromEnvironment("yes")).toBe("off");
|
|
13
|
+
expect(kittyModeFromEnvironment("")).toBe("off");
|
|
14
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { expect, test } from "bun:test";
|
|
2
|
+
import { runBytes } from "../src/platform/commands.js";
|
|
3
|
+
|
|
4
|
+
test("runBytes terminates a child process at its hard timeout", async () => {
|
|
5
|
+
const started = performance.now();
|
|
6
|
+
const result = await runBytes(
|
|
7
|
+
[
|
|
8
|
+
process.execPath,
|
|
9
|
+
"-e",
|
|
10
|
+
"setInterval(() => {}, 1000)",
|
|
11
|
+
],
|
|
12
|
+
{ allowFailure: true, timeout: 20 },
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
expect(result.ok).toBe(false);
|
|
16
|
+
expect(result.stderr).toContain("timed out");
|
|
17
|
+
expect(performance.now() - started).toBeLessThan(1000);
|
|
18
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { expect, test } from "bun:test";
|
|
2
|
+
import { controllingTerminalInputPath } from "../src/platform/terminal.js";
|
|
3
|
+
|
|
4
|
+
test("redirected stdin uses the platform controlling-terminal input device", () => {
|
|
5
|
+
expect(controllingTerminalInputPath("win32")).toBe("CONIN$");
|
|
6
|
+
expect(controllingTerminalInputPath("linux")).toBe("/dev/tty");
|
|
7
|
+
expect(controllingTerminalInputPath("darwin")).toBe("/dev/tty");
|
|
8
|
+
});
|