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,1118 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable user-visible changes to jsmdcui are documented here.
|
|
4
|
+
|
|
5
|
+
## [0.19.0] - 2026-08-24
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- `--assets-external` now works in a compiled binary. Every embedded asset
|
|
10
|
+
was affected: `--demo-<name>` reported `demos/<name>.md was not found`,
|
|
11
|
+
`--demo-list` listed only `testapp.md`, `--readme` and `--changelog` failed
|
|
12
|
+
with `ENOENT`, and the runtime registry (colorschemes, syntax, help,
|
|
13
|
+
jsplugins) looked in the wrong directory. Two causes, both in the
|
|
14
|
+
bootstrap:
|
|
15
|
+
* `assetsHelper`'s `--asset` branch stayed live in tar builds, rooted at
|
|
16
|
+
the binary's own `/$bunfs/root`. With the embedded store switched off it
|
|
17
|
+
enumerated the executable and its own archive as if they were assets, so
|
|
18
|
+
`hasInternalAssets()` answered `true` and listings came back empty. A
|
|
19
|
+
store of `null` (the loader ran and was told to stay external) is now
|
|
20
|
+
told apart from `undefined` (no loader in the graph, the `--asset` back
|
|
21
|
+
end).
|
|
22
|
+
* The disk fallback looked for `<exe dir>/<key>`, but `--assets-extract`
|
|
23
|
+
writes the archive exactly as packed, namespace included:
|
|
24
|
+
`<exe dir>/assets/<name>@<version>/<key>`.
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- `assetsHelper` exports `getAssetKey(path)` and `assetDiskPath(path)` — the
|
|
29
|
+
key an asset is stored under, and the file its disk fallback reads. A
|
|
30
|
+
program that writes its own fallback needs the same two answers.
|
|
31
|
+
- `assetsHelper` exports `readAssetTextSync(path)` and
|
|
32
|
+
`readAssetBytesSync(path)`, sync twins of `readAssetText` /
|
|
33
|
+
`readAssetBytes` for callers that cannot await, such as argument parsing.
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- jsmdcui reads its own assets through `readAssetText` / `assetDiskPath`
|
|
38
|
+
instead of joining `REPO_ROOT` by hand, so every read follows the
|
|
39
|
+
extracted tree as well as the embedded one.
|
|
40
|
+
|
|
41
|
+
## [0.18.2] - 2026-08-23
|
|
42
|
+
|
|
43
|
+
- Added ASSETS_BUNFS=1 for the build system
|
|
44
|
+
* Use --asset to pack assets
|
|
45
|
+
* See single-exe/README.md
|
|
46
|
+
- Changed the tar build-exe to gzip compressed by default
|
|
47
|
+
|
|
48
|
+
## [0.18.1] - 2026-08-19
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- Fix `switchBackend`'s unix-socket endpoint losing a leading NUL byte, which
|
|
53
|
+
broke reaching a Linux abstract-namespace socket (a name starting with
|
|
54
|
+
`"\0"`, as opposed to a filesystem path). `new URL()` percent-encodes a NUL
|
|
55
|
+
byte in the path to `%00`; `rpc.mjs` now runs the extracted path through
|
|
56
|
+
`decodeURIComponent()` before handing it to Bun's `unix` fetch option, so
|
|
57
|
+
the exact original byte reaches Bun rather than the three literal
|
|
58
|
+
characters `%00`. Filesystem-path endpoints are unaffected, since they have
|
|
59
|
+
nothing that needs decoding.
|
|
60
|
+
|
|
61
|
+
## [0.18.0] - 2026-08-19
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
|
|
65
|
+
- Add `switchBackend(endpoint)` to `rpc.mjs`, repointing every `rpc.*` call
|
|
66
|
+
(including `_discover`) at a different endpoint instead of the default
|
|
67
|
+
`"rpc"`. Returns the previous endpoint so a caller can restore it.
|
|
68
|
+
- Accept a Bun unix socket as that endpoint: pass `"unix:/path/to/sock"` (or
|
|
69
|
+
`"UNIX:/path/to/sock"`) to `switchBackend`, and every `rpc.*` fetch is
|
|
70
|
+
issued over that socket via Bun's `unix` fetch option instead of as an
|
|
71
|
+
http path. Dispatch is unaffected, since routing is by function name in
|
|
72
|
+
the request body rather than by HTTP path. Only meaningful when `rpc.mjs`
|
|
73
|
+
runs under Bun (the `unix` fetch option has no effect in a browser).
|
|
74
|
+
|
|
75
|
+
## [0.17.3] - 2026-08-12
|
|
76
|
+
|
|
77
|
+
### Fixed
|
|
78
|
+
|
|
79
|
+
- Request a redraw from every `$()` selector method that changes what is on
|
|
80
|
+
screen, not only `.data()` and `.val()`. `.show()`, `.hide()`, `.toggle()`,
|
|
81
|
+
`.push()`, `.pop()`, `.shift()`, `.unshift()`, `.splice()`, and
|
|
82
|
+
`.cell(row, col).text(value)` / `.cell(row, col).val(checked)` previously
|
|
83
|
+
updated the buffer without asking the TUI to repaint, so a call made
|
|
84
|
+
outside a keypress-driven handler (a `setInterval` tick, an awaited RPC
|
|
85
|
+
callback, a resolved promise) would sit invisible on screen until an
|
|
86
|
+
unrelated keypress or click happened to trigger the next redraw.
|
|
87
|
+
|
|
88
|
+
## [0.17.2] - 2026-08-12
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
|
|
92
|
+
- Keep `_mdcuiAnsiText` in sync while typing directly into an mdcui `text` or
|
|
93
|
+
`textarea` control. Plain character insertion, backspace, and forward
|
|
94
|
+
delete previously updated only the buffer's plain lines, so any later
|
|
95
|
+
action that rebuilds the document from the cached ANSI snapshot (for
|
|
96
|
+
example, refreshing Kitty images after a reactive `.data()` update) could
|
|
97
|
+
silently revert unsaved keystrokes back to their pre-edit value. These
|
|
98
|
+
edits now update the corresponding ANSI line the same way table-cell edits
|
|
99
|
+
already did, so the cached snapshot never falls behind what is on screen.
|
|
100
|
+
|
|
101
|
+
## [0.17.0] - 2026-08-11
|
|
102
|
+
|
|
103
|
+
This release makes images first-class reactive Markdown data in both terminal
|
|
104
|
+
and browser applications. It adds a portable heading image selector, refreshes
|
|
105
|
+
Kitty graphics when template images change, accepts image data URLs, and
|
|
106
|
+
provides embedded-first asset readers with an external-file fallback. A new
|
|
107
|
+
bilingual image-switching demo and expanded documentation show both bundled
|
|
108
|
+
image sources and RPC-loaded data URLs.
|
|
109
|
+
|
|
110
|
+
### Added
|
|
111
|
+
|
|
112
|
+
- Add cross-interface `$(heading).img(index = 0).src`. In the WUI it returns
|
|
113
|
+
the indexed real `<img>` element's resolved `src`; in the TUI it returns the
|
|
114
|
+
indexed image address from rendered OSC 8 metadata below the heading and
|
|
115
|
+
before the next heading. Missing or invalid indexes return an empty string.
|
|
116
|
+
- Add `readAssetText(path)` and `readAssetBytes(path)` to the single-executable
|
|
117
|
+
asset helpers. Both prefer `internalAssets` and automatically fall back to
|
|
118
|
+
the same path under `REPO_ROOT`; the bytes API consistently resolves to a
|
|
119
|
+
`Uint8Array`.
|
|
120
|
+
- Accept `data:image/...` URLs in Kitty rendering. Preserve them across Bun's
|
|
121
|
+
Markdown-to-ANSI conversion, decode their payload to image bytes, and feed
|
|
122
|
+
them through the existing size detection, compatibility conversion, stable
|
|
123
|
+
image ID, and Kitty transmission flow.
|
|
124
|
+
- Add `demos/img-change.md` and its two compact JPEG assets. The bilingual demo
|
|
125
|
+
loads the images through its back-end RPC as data URLs, initializes a
|
|
126
|
+
reactive image during `onMdcuiLoad()`, and alternates the sources with
|
|
127
|
+
heading-scoped `.data()` updates.
|
|
128
|
+
- Document reactive images, resolved bundled image sources, hidden source
|
|
129
|
+
headings, RPC-created data URLs, and the new selector API in the main README
|
|
130
|
+
and bundled help. Expand the single-executable guide with the shared text and
|
|
131
|
+
byte fallback readers.
|
|
132
|
+
|
|
133
|
+
### Changed
|
|
134
|
+
|
|
135
|
+
- Queue reactive Kitty image preparation only when a changed template contains
|
|
136
|
+
an image. Coalesce repeated requests, rebuild image metadata safely from the
|
|
137
|
+
current ANSI document, and redraw the app after preparation completes.
|
|
138
|
+
- Reuse the new `readAssetText()` helper when generating WUI RPC and server
|
|
139
|
+
modules instead of maintaining a separate embedded-first fallback function.
|
|
140
|
+
|
|
141
|
+
### Fixed
|
|
142
|
+
|
|
143
|
+
- Delete stale Kitty placements and prepare the replacement image when a
|
|
144
|
+
reactive template changes its Markdown image, including switching from a
|
|
145
|
+
normal path to a data URL or returning to a compiled embedded asset.
|
|
146
|
+
- Prevent an older asynchronous image preparation result from overwriting a
|
|
147
|
+
newer reactive update by tracking image revisions through the rerender
|
|
148
|
+
queue.
|
|
149
|
+
|
|
150
|
+
## [0.16.0] - 2026-08-02
|
|
151
|
+
|
|
152
|
+
This release expands jsmdcui's reactive Markdown model with synchronous
|
|
153
|
+
JavaScript templates, heading-scoped state updates, and a post-load lifecycle
|
|
154
|
+
hook. It also introduces a shared TTS API for TUI and WUI and demonstrates the
|
|
155
|
+
new capabilities in a practical file-and-URL reader with paging, navigation,
|
|
156
|
+
speech controls, and configurable text replacement.
|
|
157
|
+
|
|
158
|
+
### Added
|
|
159
|
+
|
|
160
|
+
- Add the optional async `onMdcuiLoad()` front export. It runs with the normal
|
|
161
|
+
front-code scope after initial TUI layout/rendering, or after WUI
|
|
162
|
+
`window.load` and installation of selectors and template component state.
|
|
163
|
+
- Let the built-in `tts` command accept the sentence to speak as an argument,
|
|
164
|
+
including calls such as `micro.cmd.tts('Hello world')`. Calling `tts` without
|
|
165
|
+
an argument retains selection-or-cursor reading behavior.
|
|
166
|
+
- Add the cross-interface async `$.tts(text, pitch, speed)` helper. The TUI uses
|
|
167
|
+
its native speech command and updates the current process's `TTS_PITCH` and
|
|
168
|
+
`TTS_SPEED`, while the WUI uses the browser Web Speech API and resolves after
|
|
169
|
+
the utterance ends. WUI speech failures resolve to an error-reason string
|
|
170
|
+
instead of rejecting the promise. Add `$.tts.stop()` as the shared stop API;
|
|
171
|
+
its TUI implementation uses the same dedicated stop path as Escape does while
|
|
172
|
+
speech is active.
|
|
173
|
+
- Add synchronous four-backtick `js template` components alongside
|
|
174
|
+
`md template`. Their source is used directly as the render function body, so
|
|
175
|
+
it can explicitly return Markdown while retaining the same heading-owned
|
|
176
|
+
`data` argument, component `this`, front matter, and reactive replacement
|
|
177
|
+
flow.
|
|
178
|
+
- Add the bilingual `demos/reader.md` reader demo. It provides reactive
|
|
179
|
+
ten-item file-list pages, editable page jumps, local directory completion,
|
|
180
|
+
direct file or URL selection, fixed-size document pages, keyboard paging,
|
|
181
|
+
and heading-scoped help.
|
|
182
|
+
- Let the reader fetch a web page and build its source list from `a[href]`
|
|
183
|
+
elements in document order. Link labels use anchor text while selected
|
|
184
|
+
values resolve relative links to complete HTTP(S) URLs.
|
|
185
|
+
- Add reader navigation and speech controls for numbered previous/next
|
|
186
|
+
chapters, speech speed and pitch, sequential sentence playback, automatic
|
|
187
|
+
page advancement, and cancellation that also stops the background reading
|
|
188
|
+
loop.
|
|
189
|
+
- Support optional JSON5 `replace.json` rules during reader loads. Each
|
|
190
|
+
two-item rule compiles its target as a global regular expression and inserts
|
|
191
|
+
its replacement literally. Local files use their own directory; URL loads
|
|
192
|
+
use `process.cwd()`.
|
|
193
|
+
|
|
194
|
+
## [0.15.0] - 2026-08-01
|
|
195
|
+
|
|
196
|
+
### Added
|
|
197
|
+
|
|
198
|
+
- Add reactive Markdown components with exactly four-backtick `md template`
|
|
199
|
+
fences. Each component belongs to its closest preceding heading, shares that
|
|
200
|
+
heading's data object, and exposes `source`, `initialData`, `last`, `data`,
|
|
201
|
+
`id`, `index`, and a `render(data = {})` function.
|
|
202
|
+
- Treat template source as a JavaScript template literal, allowing expressions
|
|
203
|
+
such as `${data.name}`. Component render results remain Markdown and pass
|
|
204
|
+
through an in-memory TUI or WUI Markdown conversion step before jsmdcui
|
|
205
|
+
replaces the component region.
|
|
206
|
+
- Parse optional leading template front matter with `Bun.YAML`, merge it into
|
|
207
|
+
the heading data before the first component render, and retain the parsed
|
|
208
|
+
object as `component.initialData`.
|
|
209
|
+
- Rerender every component under a heading when `.data(key, value)` or
|
|
210
|
+
`.data(object)` updates that heading. TUI components use invisible boundary
|
|
211
|
+
markers; WUI components use scoped `.mdcui-template` wrappers.
|
|
212
|
+
- Add post-edit `@input` handlers for named `text` and `textarea` controls in
|
|
213
|
+
both interfaces. WUI support is layered on top of the existing `onkeydown`
|
|
214
|
+
and mobile `onbeforeinput` paths rather than replacing them.
|
|
215
|
+
- Add `demos/reactive.md`, a bilingual reactive-template example using YAML
|
|
216
|
+
initial data and a 200 ms debounced text input.
|
|
217
|
+
|
|
218
|
+
### Fixed
|
|
219
|
+
|
|
220
|
+
- Make TUI `@input` handlers observe the value after character insertion and
|
|
221
|
+
other successful edits instead of the preceding keydown value.
|
|
222
|
+
- Request a TUI redraw when an asynchronous `.data()` update replaces reactive
|
|
223
|
+
component output, preventing the display from remaining one update behind
|
|
224
|
+
until the next keypress.
|
|
225
|
+
|
|
226
|
+
## [0.14.0] - 2026-07-29
|
|
227
|
+
|
|
228
|
+
### Added
|
|
229
|
+
|
|
230
|
+
- Convert a leading `[ ]`, `[x]`, or `[X]` in every Markdown table cell into
|
|
231
|
+
a fixed-width `☐`/green `☒` TUI control or a native WUI checkbox, while
|
|
232
|
+
leaving matching text elsewhere in the cell unchanged. TUI conversion now
|
|
233
|
+
happens from the Markdown source before Bun lays out narrow cells, so the
|
|
234
|
+
checkbox cannot be split across rendered lines.
|
|
235
|
+
- Add cross-interface `$('#heading-id').cell(row, col).text()` and
|
|
236
|
+
`.text(value)` for reading or replacing zero-based cells in the
|
|
237
|
+
heading-associated table. TUI wrapped cell lines are joined on read; writes
|
|
238
|
+
remain inside the existing rendered rectangle, preserve ANSI styles and
|
|
239
|
+
OSC 8 links, and survive width rerenders. WUI writes retain the cell's
|
|
240
|
+
existing elements. Cell selections expose
|
|
241
|
+
`.row` and `.col`, plus bounded `.left()`, `.right()`, `.up()`, and `.down()`
|
|
242
|
+
navigation that returns `null` outside the table, with `.lt()`, `.rt()`, and
|
|
243
|
+
`.dn()` convenience aliases. A link event's `$(this).parent()` returns its
|
|
244
|
+
containing cell in both interfaces.
|
|
245
|
+
- Add cross-interface `.cell(row, col).val()`. It returns the first checkbox's
|
|
246
|
+
checked state as `true` or `false`, or falls back to the cell text when the
|
|
247
|
+
cell has no checkbox. Passing a boolean updates the first checkbox in either
|
|
248
|
+
interface.
|
|
249
|
+
- Make generated WUI tables directly editable while retaining embedded
|
|
250
|
+
checkbox and link elements.
|
|
251
|
+
|
|
252
|
+
### Fixed
|
|
253
|
+
|
|
254
|
+
- Preserve edited TUI table cells, including their ANSI styles and OSC 8 data,
|
|
255
|
+
across terminal resize, `vsplit`, and closing a split. Refit edited contents
|
|
256
|
+
into the newly sized cells while leaving unchanged cells to the fresh
|
|
257
|
+
Markdown layout.
|
|
258
|
+
- Let TUI table overwrite mode accept double-width IME input such as Chinese
|
|
259
|
+
by consuming adjacent editable columns without crossing cell padding.
|
|
260
|
+
- Render a full-width divider between logical TUI table rows associated with
|
|
261
|
+
headings (without splitting wrapped cell text), and use
|
|
262
|
+
the active colorscheme's cursor-line or color-column color for the header
|
|
263
|
+
and alternating body-row backgrounds.
|
|
264
|
+
- Edit rendered TUI table rows in fixed-width overwrite mode so Backspace,
|
|
265
|
+
Delete, spaces, and printable input cannot remove cell separators or change
|
|
266
|
+
the row's visual width.
|
|
267
|
+
- Add default table borders, cell padding, striped rows, and hover highlighting
|
|
268
|
+
directly to the generated WUI HTML boilerplate.
|
|
269
|
+
|
|
270
|
+
### Changed
|
|
271
|
+
|
|
272
|
+
- Replace the special-case `--demo-imgtool` and `--demo-imgtool-zh` aliases
|
|
273
|
+
with normal `demos/imgtool.md` discovery. Both commands now load compact
|
|
274
|
+
table-based image processor demos and create same-named local Markdown files.
|
|
275
|
+
|
|
276
|
+
## [0.13.1] - 2026-07-29
|
|
277
|
+
|
|
278
|
+
### Fixed
|
|
279
|
+
|
|
280
|
+
- Rerender MDCUI buffers at their new pane width immediately after `vsplit`
|
|
281
|
+
and after a split pane closes.
|
|
282
|
+
- Show a TUI message when checkbox state restoration is skipped because a
|
|
283
|
+
width rerender changed the number of checkboxes.
|
|
284
|
+
- Restore every rendered `☐` and `☒`, including its exact ANSI style, by
|
|
285
|
+
full-text order across ordinary text, tables, and fenced blocks when their
|
|
286
|
+
total count remains unchanged.
|
|
287
|
+
|
|
288
|
+
## [0.13.0] - 2026-07-28
|
|
289
|
+
|
|
290
|
+
### Added
|
|
291
|
+
|
|
292
|
+
- Add cross-interface heading selection APIs for stable `.id` values,
|
|
293
|
+
`.text()`, `.show()`, `.hide()`, `.toggle()`, `.data()`, and
|
|
294
|
+
`.removeData()`.
|
|
295
|
+
- Reserve the first visible grapheme of an identified heading as its section
|
|
296
|
+
toggle. It can be activated with a mouse click, `Enter`, or `Space`, while
|
|
297
|
+
the heading itself remains visible.
|
|
298
|
+
- Give local `javascript:` links and fenced keyboard handlers matching `this`,
|
|
299
|
+
`event.target`, and `event.currentTarget` values in both interfaces,
|
|
300
|
+
including keyboard modifiers and cancellation state.
|
|
301
|
+
- Add the `--demo-event` example for link and keyboard events, nested
|
|
302
|
+
selections, heading data, and heading visibility.
|
|
303
|
+
- Preserve heading-list mutations, checkbox states, fenced-control contents,
|
|
304
|
+
and collapsed headings when a terminal-width change rerenders a TUI
|
|
305
|
+
document.
|
|
306
|
+
- Accept Unicode letters, numbers, and combining marks in MDCUI IDs across
|
|
307
|
+
fenced declarations and selectors. Markdown headings whose usual generated
|
|
308
|
+
ID is empty receive a normalized Unicode ID or a stable `mdcui-h-...`
|
|
309
|
+
fallback.
|
|
310
|
+
- Give TUI link targets source-rendered inline label HTML through `innerHTML`,
|
|
311
|
+
with a visible-text fallback when source metadata is unavailable.
|
|
312
|
+
- Add `--outline FILE.md` to print every selectable heading ID as an indented
|
|
313
|
+
`-` item and every named fenced-block ID as a top-level `+` item.
|
|
314
|
+
- Let TUI `#heading-id` links move the cursor to the matching Markdown heading
|
|
315
|
+
and center it vertically, matching same-document WUI navigation.
|
|
316
|
+
|
|
317
|
+
### Changed
|
|
318
|
+
|
|
319
|
+
- Canonicalize a `$()` object argument with a legal MDCUI ID immediately to
|
|
320
|
+
the corresponding `#id` selection. Other object fields are discarded,
|
|
321
|
+
wrapping may be nested to any depth, and objects without a legal ID retain
|
|
322
|
+
generic object-target behavior.
|
|
323
|
+
- Wrap WUI heading ranges in nested `<section>` elements so their visibility
|
|
324
|
+
boundaries match the TUI.
|
|
325
|
+
- Keep per-ID user data stable while headings are hidden, restored, or
|
|
326
|
+
replaced in the WUI DOM. `.removeData()` removes only user-owned data.
|
|
327
|
+
- Return semantic heading HTML without exposing the internal first-grapheme
|
|
328
|
+
toggle wrapper.
|
|
329
|
+
- Bound heading visibility and direct task-list lookup to the heading's
|
|
330
|
+
Markdown container, such as its enclosing blockquote or list item.
|
|
331
|
+
|
|
332
|
+
### Fixed
|
|
333
|
+
|
|
334
|
+
- Prevent a heading concealed by an ancestor from resolving to an unrelated
|
|
335
|
+
visible heading or mutating that heading's task list.
|
|
336
|
+
- Make `.show()`, `.hide()`, and `.toggle()` update nested headings correctly
|
|
337
|
+
while one or more ancestors remain collapsed.
|
|
338
|
+
- Replay task-list mutations made through nested ID selections after a TUI
|
|
339
|
+
rerender.
|
|
340
|
+
- Prevent content, collapsed sections, or runtime list mutations from the
|
|
341
|
+
previous source from reappearing after a document is reopened, while
|
|
342
|
+
retaining user data.
|
|
343
|
+
- Let an earlier WUI click handler cancel a `javascript:` link and expose the
|
|
344
|
+
correct initial `event.defaultPrevented` state to the evaluated handler.
|
|
345
|
+
- Resolve legal pure IDs reliably in the WUI when their characters have CSS
|
|
346
|
+
selector meaning.
|
|
347
|
+
- Preserve quoted `>` characters in heading inline-HTML attributes when
|
|
348
|
+
adding the toggle target.
|
|
349
|
+
- Keep standalone `<code>` elements opaque to WUI heading-section generation,
|
|
350
|
+
so heading-like content inside them cannot create broken sections.
|
|
351
|
+
- Treat the first visible heading character as one complete grapheme cluster,
|
|
352
|
+
avoiding splits in combining-character and ZWJ emoji sequences.
|
|
353
|
+
- Discover selectable and event-enabled fenced blocks correctly inside
|
|
354
|
+
blockquotes and list items, and make `--check` report ATX, Setext, and fenced
|
|
355
|
+
declarations at their actual source lines.
|
|
356
|
+
- Keep wrapped TUI links active on every displayed row and retain the correct
|
|
357
|
+
complete label across repeated URLs, images, hidden sections, and rerenders.
|
|
358
|
+
- Preserve an emptied task list's insertion position and keep later heading
|
|
359
|
+
rows, `.line()`, and first-character toggles aligned when text controls
|
|
360
|
+
change height or the TUI rerenders.
|
|
361
|
+
- Resize prefixed text frames at their visible corners without pairing them
|
|
362
|
+
with an adjacent or differently nested frame.
|
|
363
|
+
- Coalesce overlapping TUI width rerenders and preserve terminal-input order,
|
|
364
|
+
including split `Alt` key sequences.
|
|
365
|
+
- Prevent the key used to dismiss an alert, prompt, or shell pause from being
|
|
366
|
+
replayed into the editor afterward.
|
|
367
|
+
- Apply one shared timeout budget to remote Kitty images in a TUI render,
|
|
368
|
+
abort stalled downloads, and retain the linked `📷` fallback.
|
|
369
|
+
- Preserve valid raw `%` expressions in WUI `javascript:` links and report
|
|
370
|
+
synchronous or asynchronous handler failures to the browser console.
|
|
371
|
+
|
|
372
|
+
## [0.12.0] - 2026-07-27
|
|
373
|
+
|
|
374
|
+
This release makes Markdown images embedded by Bun's HTML bundler available to
|
|
375
|
+
the compiled terminal UI, adds environment-controlled Kitty rendering, and
|
|
376
|
+
consolidates the reusable single-executable asset helpers.
|
|
377
|
+
|
|
378
|
+
### Added
|
|
379
|
+
|
|
380
|
+
- Add `JSMDCUI_KITTY_MODE=off|compat|extended` as an environment-controlled
|
|
381
|
+
alternative to the Kitty command-line flags. Explicit `--kitty` and
|
|
382
|
+
`--kitty-compat` arguments continue to take precedence.
|
|
383
|
+
- Preserve each generated WUI image source in `data-mdcui-src`. Bun can rewrite
|
|
384
|
+
the normal `src` to its content-hashed public asset path while the original
|
|
385
|
+
Markdown reference remains available for TUI lookup.
|
|
386
|
+
- Add reusable HTML bundle helpers to `single-exe/assetsHelper.js`. They match
|
|
387
|
+
compiled public image paths to `homepage.files`, canonicalize HTML entities
|
|
388
|
+
and percent-encoded image references, and build a Markdown-reference-to-bunfs
|
|
389
|
+
image map from `homepage.index`.
|
|
390
|
+
- Export the bundled `homepage` from generated Markdown server modules so a
|
|
391
|
+
compiled TUI can inspect the same HTML asset manifest without starting the
|
|
392
|
+
WUI server.
|
|
393
|
+
|
|
394
|
+
### Changed
|
|
395
|
+
|
|
396
|
+
- Reuse images already embedded by Bun's HTML bundler instead of copying a
|
|
397
|
+
second image archive into the executable. The compiled TUI builds the image
|
|
398
|
+
path map once on first Kitty use, caches it, and reads image bytes lazily from
|
|
399
|
+
Bun's compiled virtual filesystem (`/$bunfs/root/...` on POSIX systems or
|
|
400
|
+
`B:/~BUN/...` on Windows).
|
|
401
|
+
- Load the bundled homepage only when running a compiled executable with
|
|
402
|
+
`global.MDCUI_MAIN` configured. Source-tree launches retain the existing
|
|
403
|
+
filesystem and authorized HTTP image fallbacks without importing a generated
|
|
404
|
+
server module.
|
|
405
|
+
- Consolidate runtime asset access on `single-exe/assetsHelper.js` and remove
|
|
406
|
+
the duplicate `src/runtime/assets.js` implementation.
|
|
407
|
+
|
|
408
|
+
### Fixed
|
|
409
|
+
|
|
410
|
+
- Match compiled Markdown images independently of Bun's build-entry-relative
|
|
411
|
+
`homepage.files[].input` paths. This fixes images whose Markdown-relative
|
|
412
|
+
path and bundle-entry-relative path have different spellings.
|
|
413
|
+
- Normalize bare `process.env.JSMDCUI_KITTY_MODE=compat` build definitions into
|
|
414
|
+
JavaScript string literals before forwarding them to `bun build`.
|
|
415
|
+
- Use the global `process` binding for Kitty-mode build constants, allowing Bun
|
|
416
|
+
to replace `process.env.JSMDCUI_KITTY_MODE` at build time instead of missing
|
|
417
|
+
an imported and renamed `node:process` binding.
|
|
418
|
+
|
|
419
|
+
## [0.11.2] - 2026-07-26
|
|
420
|
+
|
|
421
|
+
### Added
|
|
422
|
+
|
|
423
|
+
- Add `--build-md-exe <file.md>` as a convenience alias for building a
|
|
424
|
+
current-platform executable with `global.MDCUI_MAIN` set to the specified
|
|
425
|
+
Markdown app.
|
|
426
|
+
- Add `--build-md-for <platform> <file.md>` for the equivalent
|
|
427
|
+
cross-compilation workflow. Both aliases expand into the existing build
|
|
428
|
+
arguments before generated application files are written.
|
|
429
|
+
|
|
430
|
+
### Fixed
|
|
431
|
+
|
|
432
|
+
- Fix the final executable existence check for Windows builds by checking the
|
|
433
|
+
`.exe` output path for Windows targets, or for native Windows builds when no
|
|
434
|
+
target is specified.
|
|
435
|
+
|
|
436
|
+
## [0.11.1] - 2026-07-26
|
|
437
|
+
|
|
438
|
+
### Changed
|
|
439
|
+
|
|
440
|
+
- Accept a bare `global.MDCUI_MAIN` path in forwarded build arguments by
|
|
441
|
+
automatically encoding non-primitive define values as JavaScript strings.
|
|
442
|
+
|
|
443
|
+
## [0.11.0] - 2026-07-26
|
|
444
|
+
|
|
445
|
+
This release adds custom Markdown-app embedding for Bun single-file
|
|
446
|
+
executables, with explicit per-buffer selection between embedded and
|
|
447
|
+
filesystem modules in both TUI and WUI.
|
|
448
|
+
|
|
449
|
+
### Added
|
|
450
|
+
|
|
451
|
+
- Add the build-time `global.MDCUI_MAIN` string define for embedding a custom
|
|
452
|
+
Markdown app together with its generated front, RPC, back, HTML, and server
|
|
453
|
+
modules. Build preparation resolves and validates the source, copies it into
|
|
454
|
+
the bundled demos, derives `global.MDCUI_MAIN_BASE`, and selects the app on a
|
|
455
|
+
no-argument launch.
|
|
456
|
+
- Add a bundling mode to `extractJs()` and `createWui()`. It emits a
|
|
457
|
+
browser-only `.tmpfs.js` front module and a `.tmpfi.js` installer that exposes
|
|
458
|
+
the front exports on `window`, then makes the bundled HTML load that entry.
|
|
459
|
+
- Add embedded WUI server startup and report whether WUI is starting an
|
|
460
|
+
embedded or external server before launch.
|
|
461
|
+
- Add `micro.CurPane().Buf.MdcuiModuleSource`, returning `embedded` or
|
|
462
|
+
`external`, and show the value in the bundled `showpath` example.
|
|
463
|
+
- Allow Unicode letters and numbers, including Chinese, in custom demo names
|
|
464
|
+
while continuing to reject whitespace and path separators.
|
|
465
|
+
- Show `global.MDCUI_MAIN` and the generated `global.MDCUI_MAIN_BASE` in
|
|
466
|
+
`--version` distribution settings.
|
|
467
|
+
|
|
468
|
+
### Changed
|
|
469
|
+
|
|
470
|
+
- Track embedded-module selection per buffer. The configured demo uses
|
|
471
|
+
embedded TUI front/RPC and WUI server modules when its local byte length
|
|
472
|
+
matches the bundled Markdown. Missing or overwritten copies are written
|
|
473
|
+
first and then use embedded modules; other files and changed-size demos use
|
|
474
|
+
filesystem companions.
|
|
475
|
+
- Document presence-based `MDCUI_*` defines with `=1`, supported build-flag
|
|
476
|
+
combinations, and commands for switching a TUI-default build to WUI or a
|
|
477
|
+
WUI-default build to TUI.
|
|
478
|
+
|
|
479
|
+
### Fixed
|
|
480
|
+
|
|
481
|
+
- Bundle and load the configured app's front, RPC, back, server, and dependency
|
|
482
|
+
graph so custom apps with companion imports can run from a single
|
|
483
|
+
executable.
|
|
484
|
+
- Keep unrelated Markdown buffers on external modules instead of reusing the
|
|
485
|
+
embedded main app's front and RPC modules.
|
|
486
|
+
- Use the bundled file's byte length after `MDCUI_OVERWRITE_DEMO` replaces a
|
|
487
|
+
stale local demo, ensuring that the overwritten app selects embedded
|
|
488
|
+
modules.
|
|
489
|
+
- Install WUI front exports on `window` without relying on the generated front
|
|
490
|
+
module's process-dependent or self-import path.
|
|
491
|
+
|
|
492
|
+
## [0.10.1] - 2026-07-25
|
|
493
|
+
|
|
494
|
+
### Fixed
|
|
495
|
+
|
|
496
|
+
- Resolve and prepare `--demo` and `--demo-*` selections before entering WUI
|
|
497
|
+
mode, so combinations such as `--wui --demo-todo` serve the selected demo
|
|
498
|
+
instead of falling back to `testapp.md`.
|
|
499
|
+
|
|
500
|
+
## [0.10.0] - 2026-07-24
|
|
501
|
+
|
|
502
|
+
This update adds distribution-oriented defaults for shipping jsmdcui as a text
|
|
503
|
+
editor, terminal application, or browser application; makes WUI startup and
|
|
504
|
+
demo replacement explicit; and improves command-line control over rendering,
|
|
505
|
+
syntax highlighting, and single-executable builds.
|
|
506
|
+
|
|
507
|
+
### Added
|
|
508
|
+
|
|
509
|
+
- Add `--mdcui` and `--tui` as aliases for `-encoding mdcui`, allowing an
|
|
510
|
+
explicit terminal Markdown UI request to override an editor-oriented
|
|
511
|
+
distribution default.
|
|
512
|
+
- Add `--overwrite-demo` as a modifier for `--demo` and the automatically
|
|
513
|
+
discovered `--demo-*` commands. It replaces an existing local demo with the
|
|
514
|
+
bundled copy before opening it.
|
|
515
|
+
- Add `--print-ui` for WUI launches. The generated TUI preview, raw ANSI, and
|
|
516
|
+
HTML are printed only when this flag is present.
|
|
517
|
+
- Add the `src/MDCUI_DEFAULT_EDIT` distribution marker. When present, Markdown
|
|
518
|
+
files open as editable UTF-8 text by default while `--mdcui` remains
|
|
519
|
+
available explicitly.
|
|
520
|
+
- Add presence-based single-executable build constants:
|
|
521
|
+
`MDCUI_DEFAULT_EDIT`, `MDCUI_DEFAULT_DEMO`, and
|
|
522
|
+
`MDCUI_DEFAULT_DEMO_WUI` select an editor, no-argument TUI demo, or
|
|
523
|
+
no-argument WUI demo default. `MDCUI_OVERWRITE_DEMO` optionally makes a
|
|
524
|
+
bundled demo replace its local copy.
|
|
525
|
+
- Add distribution documentation for shipping a customized root
|
|
526
|
+
`testapp.md` as a standalone terminal or browser application.
|
|
527
|
+
- Add regression coverage for the `--mdcui` alias, forced CLI filetypes,
|
|
528
|
+
non-overwriting and overwriting demos, and WUI demo replacement.
|
|
529
|
+
|
|
530
|
+
### Changed
|
|
531
|
+
|
|
532
|
+
- Parse `--wui` through the normal command-line argument flow, so it can appear
|
|
533
|
+
before or after the Markdown filename.
|
|
534
|
+
- Make WUI startup quieter by default. It continues to report file generation
|
|
535
|
+
and the server URL, while full generated UI output is opt-in through
|
|
536
|
+
`--print-ui`.
|
|
537
|
+
- Make direct `runmd.mjs` launches recognize `--overwrite-demo` and
|
|
538
|
+
`--print-ui`. Demo replacement is limited to the implicit `testapp.md`;
|
|
539
|
+
explicitly named Markdown files are protected from replacement.
|
|
540
|
+
- Forward every extra argument after `--build-exe`, or after the target passed
|
|
541
|
+
to `--build-for`, to the underlying `bun build` command.
|
|
542
|
+
- Align the `start`, `tui`, and `wui` package scripts with the repository
|
|
543
|
+
launchers, and add a `clean` package script.
|
|
544
|
+
- Recommend choosing only one of the three `MDCUI_DEFAULT_*` distribution
|
|
545
|
+
modes per build, with `MDCUI_OVERWRITE_DEMO` treated as an optional modifier.
|
|
546
|
+
- Show effective `MDCUI_*` distribution settings in `--version` output,
|
|
547
|
+
including `MDCUI_DEFAULT_EDIT` enabled through either its build constant or
|
|
548
|
+
the `src/MDCUI_DEFAULT_EDIT` marker.
|
|
549
|
+
|
|
550
|
+
### Fixed
|
|
551
|
+
|
|
552
|
+
- Make `-filetype <name>` actually override automatic syntax detection in
|
|
553
|
+
editor buffers and `--cat`, including input read from stdin.
|
|
554
|
+
|
|
555
|
+
## [0.9.0] - 2026-07-21
|
|
556
|
+
|
|
557
|
+
This update expands Chrome DevTools Protocol automation for the terminal UI,
|
|
558
|
+
adds a complete maze-solving example, and makes the optional Bun single-file
|
|
559
|
+
executable bootstrap easier to reuse and more reliable across platforms.
|
|
560
|
+
|
|
561
|
+
### Added
|
|
562
|
+
|
|
563
|
+
- Add CDP automation support for reading the rendered ANSI document, activating
|
|
564
|
+
a 1-based terminal-buffer cell, and sending keyboard input through the TUI's
|
|
565
|
+
normal input parser and event pipeline. Key presses support Alt, Ctrl, Meta,
|
|
566
|
+
Shift, navigation keys, editing keys, text, and auto-repeat without emitting
|
|
567
|
+
duplicate input for paired CDP `keyDown` and `char` events.
|
|
568
|
+
- Add `micro.getAllAnsiText()` and `micro.clickBufferCell(x, y)` to the JS
|
|
569
|
+
plugin bridge. MDCUI cell clicks now activate the same callbacks as mouse
|
|
570
|
+
input, while clicks in ordinary buffers retain the previous `goto` behavior.
|
|
571
|
+
- Add `cdp-maze.js` and `llm-maze.txt`, a documented Bun.WebView example that
|
|
572
|
+
reads the maze from the running TUI, solves it with breadth-first search, and
|
|
573
|
+
completes it by clicking controls and sending arrow-key events through CDP.
|
|
574
|
+
- Add `--cdp-maze` to open the bundled maze, start a local CDP server on port
|
|
575
|
+
9222, and automatically import and run the maze solver after a three-second
|
|
576
|
+
delay. The completed result is returned to the main program and displayed in
|
|
577
|
+
the TUI status message.
|
|
578
|
+
- Add `--export-cdp-maze` to write or overwrite `./cdp-maze.js` from the
|
|
579
|
+
bundled asset first, with a source-tree fallback, then exit. Include the
|
|
580
|
+
solver in the single-executable asset archive.
|
|
581
|
+
- Add a dedicated CDP automation section to the README and bundled help,
|
|
582
|
+
covering command-line and command-prompt startup, bind-address safety,
|
|
583
|
+
connection methods, and the maze solver workflow.
|
|
584
|
+
- Add a reusable single-file executable guide covering asset packing, embedded
|
|
585
|
+
and external resource fallbacks, build commands, cross-compilation, Node.js
|
|
586
|
+
compatibility, and adapting the bootstrap to another project.
|
|
587
|
+
|
|
588
|
+
### Changed
|
|
589
|
+
|
|
590
|
+
- Move responsibility for awaiting bundled assets into the Bun-only
|
|
591
|
+
`single-exe/entry.mjs` bootstrap, then dynamically import the regular main
|
|
592
|
+
module. This keeps the main module free of Bun-specific asset-loader state
|
|
593
|
+
and preserves its uncompiled Node.js execution path.
|
|
594
|
+
- Detect Bun's compiled virtual paths on both POSIX (`/$bunfs/`) and Windows
|
|
595
|
+
(`B:/~BUN`) when resolving single-executable resources, and consolidate
|
|
596
|
+
compiled-runtime handling in `single-exe/compiled.js`.
|
|
597
|
+
- When initially launched with Node.js, restart under Bun with inherited stdio
|
|
598
|
+
and propagate its exit status instead of replacing the current process with
|
|
599
|
+
`process.execve()`.
|
|
600
|
+
- Display the maze completion message inside the game instead of opening a
|
|
601
|
+
blocking alert, and include reset instructions in the result.
|
|
602
|
+
- Export the maze solver as a reusable `runCdpMaze()` function while retaining
|
|
603
|
+
direct `bun cdp-maze.js` execution. Suppress its console result while stdin
|
|
604
|
+
is in terminal raw mode so TUI rendering is not corrupted.
|
|
605
|
+
- Replace the manual two-process maze automation instructions with the single
|
|
606
|
+
`--cdp-maze` workflow in the README and bundled help.
|
|
607
|
+
- Update the homepage and Kitty test images to use the smaller current demo and
|
|
608
|
+
maze screenshots; exclude the maze screenshot from the npm package.
|
|
609
|
+
- Document theme preview from the TUI command prompt and state Bun 1.3.12 as
|
|
610
|
+
the minimum required version.
|
|
611
|
+
|
|
612
|
+
### Fixed
|
|
613
|
+
|
|
614
|
+
- Make CDP `view.click()` activate MDCUI links and controls at the requested
|
|
615
|
+
buffer coordinate instead of only moving the cursor there.
|
|
616
|
+
- Allow CDP input dispatch without an explicit session ID by selecting the
|
|
617
|
+
implicit target, matching other single-target CDP operations.
|
|
618
|
+
- Wait until the embedded asset archive is ready before starting the compiled
|
|
619
|
+
application, preventing startup from racing bundled resource loading.
|
|
620
|
+
|
|
621
|
+
## [0.8.0] - 2026-07-20
|
|
622
|
+
|
|
623
|
+
This update adds portable inline keydown handling to Markdown text controls,
|
|
624
|
+
including mobile software-keyboard fallback behavior, and makes interactive
|
|
625
|
+
prompts safe across every TUI frontend action path.
|
|
626
|
+
|
|
627
|
+
### Added
|
|
628
|
+
|
|
629
|
+
- Add quoted `@keydown="..."` attributes to named `text` and `textarea`
|
|
630
|
+
fences. The TUI preserves source event metadata and evaluates it before key
|
|
631
|
+
handling; the WUI emits a native inline event attribute. Add `.prevent` to
|
|
632
|
+
apply `event.preventDefault()` before the handler runs. Keyup is intentionally
|
|
633
|
+
not exposed because traditional terminals do not report key releases
|
|
634
|
+
reliably.
|
|
635
|
+
- In the WUI, automatically map `beforeinput.data` back through `onkeydown`
|
|
636
|
+
when a mobile software keyboard reports `event.key` as `Unidentified`.
|
|
637
|
+
Unidentified events are hidden from application handlers, while identified
|
|
638
|
+
desktop keydowns are marked briefly to prevent duplicate calls.
|
|
639
|
+
- Add native multiline editing to TUI `textarea` controls. Enter splits a body
|
|
640
|
+
row and expands the frame; Backspace at the start of a later row and Delete
|
|
641
|
+
at the end of a row join adjacent body rows without exposing frame borders.
|
|
642
|
+
- Add the `bun ./edit` launcher as a short equivalent of
|
|
643
|
+
`bun src/index.js --edit`, opening Markdown as ordinary editable UTF-8 source.
|
|
644
|
+
- Add the automatically discovered `--demo-maze` example, demonstrating
|
|
645
|
+
portable `@keydown.prevent` controls with keyboard and arrow-key navigation;
|
|
646
|
+
add `Ctrl-R` as a keyboard shortcut for resetting the maze.
|
|
647
|
+
|
|
648
|
+
### Changed
|
|
649
|
+
|
|
650
|
+
- Install protected `alert`, `confirm`, and `prompt` globals once for the TUI
|
|
651
|
+
lifetime and share them across OSC 8 actions, fenced keyboard handlers, and
|
|
652
|
+
JS plugins. Restore Bun's original globals when the TUI stops.
|
|
653
|
+
- Make `micro.alert()`, `micro.confirm()`, and `micro.prompt()` synchronous like
|
|
654
|
+
their native counterparts, and update the bundled JS plugin examples so they
|
|
655
|
+
do not `await` these calls.
|
|
656
|
+
- Add TUI `.val(value)` replacements to Undo/Redo history, including multiline
|
|
657
|
+
layout, ANSI rendering metadata, image positions, and task-list anchors.
|
|
658
|
+
|
|
659
|
+
### Fixed
|
|
660
|
+
|
|
661
|
+
- Prevent `alert()` called from a keydown handler from competing with the TUI
|
|
662
|
+
for stdin by suspending raw mode and screen rendering around native prompts.
|
|
663
|
+
- Restore the terminal's previous raw-mode and input-listener state after a
|
|
664
|
+
protected prompt, including setup, prompt, and cleanup error paths.
|
|
665
|
+
- Index fenced keyboard-event regions once and use binary lookup for each key,
|
|
666
|
+
instead of rescanning the rendered Markdown document on every keypress.
|
|
667
|
+
- Open Windows controlling-terminal input through read-only `CONIN$` when stdin
|
|
668
|
+
is redirected, so piped Markdown retains keyboard and protected-prompt input.
|
|
669
|
+
- Preserve `ctrlKey`, `shiftKey`, `altKey`, and `metaKey` when the WUI maps an
|
|
670
|
+
unidentified mobile keydown through its `beforeinput` fallback.
|
|
671
|
+
- Recover modified A-Z keys in the WUI from key codes 65-90 or physical
|
|
672
|
+
`KeyA`-`KeyZ` codes, including Android browsers that transform Alt-S into
|
|
673
|
+
`ß`; exclude AltGraph so international text composition remains intact.
|
|
674
|
+
- Add matching non-enumerable `event.toJSON()` methods to TUI and WUI keydown
|
|
675
|
+
events, allowing `JSON.stringify(event)` to produce portable event details.
|
|
676
|
+
- Keep fenced-block IDs visible to collision checking when the info string also
|
|
677
|
+
contains inline event attributes such as `@keydown="..."`.
|
|
678
|
+
- When the WUI's default port 3000 is already in use, retry with port 0 so the
|
|
679
|
+
operating system selects an available port, and print that actual port in the
|
|
680
|
+
generated URL. Other server startup errors continue to fail normally.
|
|
681
|
+
|
|
682
|
+
## [0.7.0] - 2026-07-20
|
|
683
|
+
|
|
684
|
+
This update adds native Kitty image rendering, turns heading task lists into
|
|
685
|
+
Array-style collections in both interfaces, and keeps TUI layout, interaction,
|
|
686
|
+
and checkbox styling consistent at every terminal width.
|
|
687
|
+
|
|
688
|
+
### Added
|
|
689
|
+
|
|
690
|
+
- Display local Markdown images at their rendered TUI positions with the
|
|
691
|
+
Kitty graphics protocol. Image rows are reserved according to intrinsic
|
|
692
|
+
dimensions, and placements follow scrolling, resizing, and split panes.
|
|
693
|
+
- With `--allow-url` and Kitty mode enabled, download HTTP(S) Markdown images
|
|
694
|
+
through the existing `curl`, `wget`, then Bun `fetch` fallback chain. Relative
|
|
695
|
+
image URLs in downloaded Markdown resolve against the original document URL.
|
|
696
|
+
- Keep Bun's normal linked `📷` fallback for missing, unsupported, and
|
|
697
|
+
unauthorized remote images, and scope Kitty cleanup to image IDs owned by
|
|
698
|
+
jsmdcui.
|
|
699
|
+
- Set Kitty's `C=1` placement flag so displaying an image cannot advance the
|
|
700
|
+
terminal cursor and trigger an unwanted scroll at the bottom of the screen.
|
|
701
|
+
- Add `.push()`, `.pop()`, `.shift()`, `.unshift()`, and `.splice()` to heading
|
|
702
|
+
selectors in both the TUI and WUI. The methods follow their
|
|
703
|
+
`Array.prototype` argument and return-value conventions, operate on direct
|
|
704
|
+
items in the first task list belonging to the heading, and remove nested
|
|
705
|
+
content together with its parent item.
|
|
706
|
+
- Allow inserted task items to be passed as strings for unchecked items or as
|
|
707
|
+
`{ value, checked }` objects, and preserve an emptied TUI list's insertion
|
|
708
|
+
point so later mutations still target the same list.
|
|
709
|
+
- Add read-only heading `.slice(start, end)`, returning fresh
|
|
710
|
+
`{ value, checked }` snapshots that include both checked and unchecked direct
|
|
711
|
+
task items.
|
|
712
|
+
- Add `demos/todo.md` and `demos/todo-zh.md`, runnable Todo examples that use
|
|
713
|
+
text controls and the new list methods to add and remove items and display
|
|
714
|
+
completed or pending tasks.
|
|
715
|
+
- Move secondary examples under `demos/` and add automatic
|
|
716
|
+
`--demo-<filename>` discovery, so newly bundled `demos/<filename>.md` files
|
|
717
|
+
need no parser changes. Keep `--demo` mapped to the root `testapp.md` and
|
|
718
|
+
retain the existing image-processor aliases.
|
|
719
|
+
- Add `--demo-list` to list the root demo and every automatically discovered
|
|
720
|
+
Markdown example from bundled assets or the source tree's `demos/` directory.
|
|
721
|
+
- Add `clean.sh` as a convenience helper for removing generated Markdown
|
|
722
|
+
companion files from the project directory.
|
|
723
|
+
|
|
724
|
+
### Changed
|
|
725
|
+
|
|
726
|
+
- Document the Array-style heading task-list API, its return values, nested-item
|
|
727
|
+
behavior, existing-list requirement, and non-persistent rendered-state
|
|
728
|
+
semantics in the README and bundled help.
|
|
729
|
+
- Use the complete pane content width consistently for Markdown rendering,
|
|
730
|
+
soft wrapping, cursor and mouse mapping, and Kitty image sizing instead of
|
|
731
|
+
reserving the terminal's final column.
|
|
732
|
+
|
|
733
|
+
### Fixed
|
|
734
|
+
|
|
735
|
+
- Fix soft wrapping at affected terminal widths shifting the visual cursor by
|
|
736
|
+
one row, which could activate the preceding Markdown action and leave the
|
|
737
|
+
final action unresponsive.
|
|
738
|
+
- Update the Bun Markdown ANSI glyph and style together when toggling a task
|
|
739
|
+
checkbox, so checked items become green and unchecked items no longer retain
|
|
740
|
+
the checked color.
|
|
741
|
+
|
|
742
|
+
## [0.6.3] - 2026-07-18
|
|
743
|
+
|
|
744
|
+
This update enforces unique heading IDs at the Markdown source level and
|
|
745
|
+
clarifies the portable fenced-block identity contract shared by the TUI and
|
|
746
|
+
WUI.
|
|
747
|
+
|
|
748
|
+
### Changed
|
|
749
|
+
|
|
750
|
+
- Treat duplicate Markdown headings that generate the same base ID as a
|
|
751
|
+
source-level collision. Later headings no longer pass `--check` merely
|
|
752
|
+
because Bun would silently assign generated suffixes such as `-1` or `-2`
|
|
753
|
+
that the Markdown author cannot see.
|
|
754
|
+
- Document that a selectable fenced-block declaration requires a tag and uses
|
|
755
|
+
the `tag#id.class` identity form. The officially supported portable control
|
|
756
|
+
tags are currently limited to `text` and `textarea` so the same Markdown
|
|
757
|
+
behaves consistently in both the TUI and WUI.
|
|
758
|
+
- Clarify that selector queries may omit the tag or classes after a valid
|
|
759
|
+
declaration.
|
|
760
|
+
- Expand checker and TUI selector regression coverage across tag/no-tag and
|
|
761
|
+
class/no-class combinations, heading-to-heading, heading-to-block, and
|
|
762
|
+
block-to-block ID collisions.
|
|
763
|
+
|
|
764
|
+
### Fixed
|
|
765
|
+
|
|
766
|
+
- Fix duplicate source headings incorrectly passing the checker after Bun
|
|
767
|
+
automatically changed the generated ID of later headings.
|
|
768
|
+
|
|
769
|
+
## [0.6.2] - 2026-07-18
|
|
770
|
+
|
|
771
|
+
This update makes Markdown ID-collision checks match the full TUI `$()` block
|
|
772
|
+
selector and gives check results clearer final status banners.
|
|
773
|
+
|
|
774
|
+
### Changed
|
|
775
|
+
|
|
776
|
+
- Extend `--check FILE.md` from `text` and `textarea` controls to every
|
|
777
|
+
explicitly named fenced block accepted by the TUI `$()` selector, including
|
|
778
|
+
identities such as `hello#myid` and `json#config`.
|
|
779
|
+
- Report separate heading and fenced-block declaration counts, and describe
|
|
780
|
+
arbitrary block tags and their source lines in collision details.
|
|
781
|
+
- Replace the previous success label with a large green `PASSED` banner and
|
|
782
|
+
add a matching large red `FAILED` banner at the bottom of failed reports.
|
|
783
|
+
Both true-color foregrounds are generated with
|
|
784
|
+
`Bun.color(..., "ansi-16m")`, with standard ANSI fallbacks.
|
|
785
|
+
- Update the README and bundled help to clarify that generated heading IDs
|
|
786
|
+
share the selector namespace with all explicitly named fenced blocks, not
|
|
787
|
+
only editable text controls.
|
|
788
|
+
|
|
789
|
+
### Fixed
|
|
790
|
+
|
|
791
|
+
- Fix `--check` overlooking collisions between a heading and a non-text
|
|
792
|
+
fenced block even though TUI `$().val()` could select both declarations.
|
|
793
|
+
- Add regression coverage for arbitrary fenced-block IDs and the colored
|
|
794
|
+
`PASSED` and `FAILED` terminal statuses.
|
|
795
|
+
|
|
796
|
+
## [0.6.1] - 2026-07-18
|
|
797
|
+
|
|
798
|
+
This update adds Markdown UI ID-collision diagnostics and bundles a practical
|
|
799
|
+
Bun.Image processor demo in English and Traditional Chinese.
|
|
800
|
+
|
|
801
|
+
### Added
|
|
802
|
+
|
|
803
|
+
- Add `--check FILE.md` to inspect Markdown heading and text-control IDs
|
|
804
|
+
without opening a UI or writing generated companion files. The report uses
|
|
805
|
+
`Bun.markdown.ansi()` headings and nested lists, identifies every collision
|
|
806
|
+
by ID, source type, line number, and original declaration, and exits with
|
|
807
|
+
status `0` for unique IDs, `1` for collisions, or `2` for usage and read
|
|
808
|
+
errors.
|
|
809
|
+
- Add `image-processor.md` and `image-processor.zh-TW.md`, runnable Bun.Image
|
|
810
|
+
tools for the TUI and WUI. They support image metadata inspection, resizing,
|
|
811
|
+
fit and resampling filters, enlargement prevention, EXIF auto-orientation,
|
|
812
|
+
rotation, vertical and horizontal mirroring, brightness and saturation
|
|
813
|
+
adjustment, and JPEG or PNG output options.
|
|
814
|
+
- Add detailed image-processing status fields. Successful writes show the
|
|
815
|
+
output path, dimensions, byte count, and all selected option values; failed
|
|
816
|
+
metadata reads and writes show the available error details and stack.
|
|
817
|
+
- Add `--demo-imgtool` and `--demo-imgtool-zh`. Each command preserves an
|
|
818
|
+
existing local processor Markdown file or writes its bundled language
|
|
819
|
+
version when missing, then opens it in the TUI.
|
|
820
|
+
- Bundle both image processor Markdown files in the single-executable asset
|
|
821
|
+
archive and add regression coverage for ID checks and both demo languages.
|
|
822
|
+
|
|
823
|
+
### Changed
|
|
824
|
+
|
|
825
|
+
- Consolidate bundled demo Markdown loading behind one
|
|
826
|
+
`bundledMarkdownSource(filename)` implementation shared by `testapp.md`,
|
|
827
|
+
`select.md`, and both image processor variants.
|
|
828
|
+
- Document that heading selector values include the complete visible label.
|
|
829
|
+
Selection parsers should use deliberate substring, prefix, or token checks
|
|
830
|
+
when labels contain explanatory text instead of assuming exact identifiers.
|
|
831
|
+
- Document that generated heading IDs and explicitly named controls share the
|
|
832
|
+
same selector namespace and that every selectable ID should be unique.
|
|
833
|
+
|
|
834
|
+
### Fixed
|
|
835
|
+
|
|
836
|
+
- Prevent explanatory text in image processor task-list labels from breaking
|
|
837
|
+
yes/no, fit, filter, and output-format selection parsing.
|
|
838
|
+
- Fix the English image processor status update silently targeting a heading
|
|
839
|
+
after `## Write Status` generated the same `#write-status` ID as its text
|
|
840
|
+
control.
|
|
841
|
+
- Catch image metadata and processing failures at both frontend and backend
|
|
842
|
+
boundaries so errors are displayed in the appropriate status field.
|
|
843
|
+
|
|
844
|
+
## [0.6.0] - 2026-07-18
|
|
845
|
+
|
|
846
|
+
This update turns Markdown headings and task lists into cross-environment form
|
|
847
|
+
controls, improves the safety and consistency of the bundled demo workflow,
|
|
848
|
+
and adds a way to export the bundled README as a runnable Markdown app.
|
|
849
|
+
|
|
850
|
+
### Added
|
|
851
|
+
|
|
852
|
+
- Add `--export-readme` to write or overwrite `./README.md` with the bundled
|
|
853
|
+
README source and exit.
|
|
854
|
+
- Add terminal task-checkbox activation. Activating a protected mdcui row at
|
|
855
|
+
or after its `☐` or `☒` toggles that checkbox and still allows the remaining
|
|
856
|
+
default cell callback to run. JavaScript links continue to take priority.
|
|
857
|
+
- Add hierarchical `<section>` wrappers to generated WUI HTML. Every h1-h6
|
|
858
|
+
opens a section; an equal or higher-level heading closes the applicable open
|
|
859
|
+
sections, while lower-level headings create nested sections. Content before
|
|
860
|
+
the first heading remains outside the generated sections.
|
|
861
|
+
- Add heading lookup to the TUI `$` API using the IDs generated by
|
|
862
|
+
`Bun.markdown.html(..., { headings: { ids: true } })`.
|
|
863
|
+
- Add `$('#heading-id').html()` in TUI to return a heading's inner HTML, and
|
|
864
|
+
`$('#heading-id').line()` to return its current 1-based terminal row or `0`
|
|
865
|
+
when it cannot be found. Line lookup follows text-block row additions,
|
|
866
|
+
removals, and multiline `.val(value)` replacements.
|
|
867
|
+
- Add `.html()` getters to WUI `$` selections. Any successfully selected DOM
|
|
868
|
+
element returns its `innerHTML`; missing or invalid selections return an
|
|
869
|
+
empty string.
|
|
870
|
+
- Add heading-based task-list values in both interfaces. `.val()` reads the
|
|
871
|
+
first task-list group directly following the selected heading, stops at the
|
|
872
|
+
next heading, and ignores nested task items. IDs beginning with `select`
|
|
873
|
+
return the first checked value or `null`; other IDs return all checked values
|
|
874
|
+
as an array or `[]`.
|
|
875
|
+
- Add `select.md`, a runnable multilevel heading and task-list example with
|
|
876
|
+
links that display single-select and multiple-select values through
|
|
877
|
+
`alert()`.
|
|
878
|
+
- Bundle `select.md` in packaged assets and add `--demo-select`. The command
|
|
879
|
+
preserves an existing `./select.md`, writes the bundled copy when missing,
|
|
880
|
+
opens it in the TUI, and generates its five companion files.
|
|
881
|
+
|
|
882
|
+
### Changed
|
|
883
|
+
|
|
884
|
+
- Make `--demo` preserve an existing `./testapp.md`. The bundled source is now
|
|
885
|
+
written only when the file is missing, then opened in the terminal UI.
|
|
886
|
+
- Make `--wui` without a file follow the same source-file rule: use an existing
|
|
887
|
+
`./testapp.md`, or write the bundled demo there when missing, before creating
|
|
888
|
+
the generated companion files.
|
|
889
|
+
- Wrap generated WUI task-checkbox text in `<label>` so clicking the associated
|
|
890
|
+
text toggles the checkbox. Direct text and immediately following paragraph
|
|
891
|
+
elements are included; unrelated tags and nested lists remain outside.
|
|
892
|
+
- Extend the 0.5 `$().val()` contract: text and textarea controls retain their
|
|
893
|
+
string getter/setter behavior, while heading selections now return scalar,
|
|
894
|
+
array, or `null` task-list values according to the heading ID.
|
|
895
|
+
- Add a demo screenshot and expand the README and built-in help with clearer
|
|
896
|
+
TUI/WUI startup, demo preservation, and README export instructions.
|
|
897
|
+
|
|
898
|
+
### Fixed
|
|
899
|
+
|
|
900
|
+
- Ensure WUI fallback to the bundled `testapp.md` materializes the Markdown
|
|
901
|
+
source in the current working directory instead of generating only its
|
|
902
|
+
companion files.
|
|
903
|
+
- Protect comments and `script`, `style`, `pre`, `code`, `textarea`, and
|
|
904
|
+
`template` regions while wrapping WUI headings, preventing heading-like HTML
|
|
905
|
+
strings inside those regions from changing the section hierarchy.
|
|
906
|
+
- Keep TUI heading lookup independent of ANSI heading text and duplicate
|
|
907
|
+
labels by mapping Bun-generated heading order and level to Bun's current
|
|
908
|
+
h1-h6 ANSI signatures.
|
|
909
|
+
|
|
910
|
+
## [0.5.0] - 2026-07-16
|
|
911
|
+
|
|
912
|
+
This update adds cross-environment form-like text blocks and a small
|
|
913
|
+
jQuery-style selector API, while keeping the same Markdown source usable in
|
|
914
|
+
both the terminal and browser interfaces.
|
|
915
|
+
|
|
916
|
+
### Added
|
|
917
|
+
|
|
918
|
+
- Add a minimal global `$` API to terminal frontend evaluation, JavaScript
|
|
919
|
+
plugins, generated browser frontend modules, and `javascript:` links.
|
|
920
|
+
- Support tag, ID, class, and combined selectors such as `$('text')`,
|
|
921
|
+
`$('#answer')`, `$('.field')`, and `$('text#answer.field')`.
|
|
922
|
+
- Add `.val()` and `.val(value)` for reading and replacing block contents.
|
|
923
|
+
Getters always return a string and use an empty string for missing elements,
|
|
924
|
+
invalid selectors, or lookup errors. Setters support chaining and resize
|
|
925
|
+
terminal blocks to fit multiline values.
|
|
926
|
+
- Recognize both raw Markdown fenced blocks and rendered Bun ANSI blocks,
|
|
927
|
+
including ASCII and Unicode frame characters.
|
|
928
|
+
- Add editable terminal `text` blocks. Content after the protected `│ ` or
|
|
929
|
+
`| ` prefix can be edited, while frame characters, line joins, inserted
|
|
930
|
+
newlines, and multiline pastes remain protected.
|
|
931
|
+
- Add interactive terminal text-block resizing. Activating the lower-left
|
|
932
|
+
frame corner adds an empty content row; activating the upper-left corner
|
|
933
|
+
removes only a trailing empty row and never deletes non-empty content.
|
|
934
|
+
- Add the optional frontend lifecycle callback
|
|
935
|
+
`onMdcuiExit({ reason, path, $ })`. The terminal awaits it before closing an
|
|
936
|
+
mdcui buffer and invokes it at most once per buffer.
|
|
937
|
+
- Add Markdown syntax completions for fenced block language identifiers.
|
|
938
|
+
|
|
939
|
+
### Changed
|
|
940
|
+
|
|
941
|
+
- Convert `text` and `textarea` fenced blocks into native browser
|
|
942
|
+
`<textarea>` elements while preserving their ID, classes, original language
|
|
943
|
+
metadata, and selector compatibility.
|
|
944
|
+
- Prefer native `document.querySelector()` in the browser `$` implementation,
|
|
945
|
+
then fall back to mdcui metadata and the original `pre > code` structure.
|
|
946
|
+
- Automatically wrap and resize generated browser textareas on page load,
|
|
947
|
+
input, `.val(value)`, and window resize. Initial `rows` and `cols` are
|
|
948
|
+
derived from the Markdown content.
|
|
949
|
+
- Generate complete HTML5 documents for WUI output, including `<!doctype
|
|
950
|
+
html>`, UTF-8 metadata, a responsive viewport, a document title, and
|
|
951
|
+
`lang="zh-TW"`.
|
|
952
|
+
- Enable `softwrap` by default.
|
|
953
|
+
- Close modified mdcui buffers without displaying a save prompt. Applications
|
|
954
|
+
can use `onMdcuiExit` to collect edited field values or call backend RPC
|
|
955
|
+
functions before closing.
|
|
956
|
+
- Update the bundled example with editable text fields, selector API examples,
|
|
957
|
+
answer validation, and manual text-box resizing instructions.
|
|
958
|
+
|
|
959
|
+
### Fixed
|
|
960
|
+
|
|
961
|
+
- Keep terminal text-block frame prefixes intact during editing and prevent
|
|
962
|
+
Delete at the end of a content row from merging it with the next row.
|
|
963
|
+
- Preserve browser textarea IDs and classes during Markdown-to-HTML
|
|
964
|
+
conversion, including compatibility metadata for original `text` selectors.
|
|
965
|
+
- Keep README and built-in help lifecycle documentation synchronized.
|
|
966
|
+
|
|
967
|
+
## [0.4.0] - 2026-07-16
|
|
968
|
+
|
|
969
|
+
This release separates executable Markdown UI views from ordinary editable
|
|
970
|
+
buffers, makes encoding behavior predictable across opens, tabs, splits, and
|
|
971
|
+
reopens, and adds explicit demo and trusted-remote execution modes.
|
|
972
|
+
|
|
973
|
+
### Added
|
|
974
|
+
|
|
975
|
+
- Add `--demo`. It outputs and overwrites `./testapp.md`, opens it as a terminal
|
|
976
|
+
Markdown UI, and writes the five generated companion files beside it.
|
|
977
|
+
- Add `--allow-url` for trusted remote Markdown apps. It downloads an HTTP(S)
|
|
978
|
+
resource into the current directory, opens the downloaded copy through the
|
|
979
|
+
normal local Markdown UI pipeline, writes the five generated companion files,
|
|
980
|
+
and permits its embedded frontend and backend code to run.
|
|
981
|
+
- Add regression coverage for global encoding handling, mdcui backup isolation,
|
|
982
|
+
the bundled demo workflow, implicit Markdown rendering, and explicit UTF-8
|
|
983
|
+
editing.
|
|
984
|
+
|
|
985
|
+
### Changed
|
|
986
|
+
|
|
987
|
+
- Treat `mdcui` buffers as independent, derived, read-only views. Every mdcui
|
|
988
|
+
open creates a new buffer instead of entering the same-path editable-buffer
|
|
989
|
+
cache.
|
|
990
|
+
- Continue sharing ordinary buffers opened from the same absolute path.
|
|
991
|
+
UTF-8 and other non-mdcui views share content, modification state, saves, and
|
|
992
|
+
reopens.
|
|
993
|
+
- Re-evaluate buffer sharing after `reopen`:
|
|
994
|
+
- reopening an mdcui view as a normal encoding joins an existing same-path
|
|
995
|
+
editable buffer, or registers itself when no such buffer exists;
|
|
996
|
+
- reopening a shared editable view as mdcui detaches only the current pane
|
|
997
|
+
into a new mdcui buffer and leaves the other shared panes unchanged.
|
|
998
|
+
- Make interactive `open`, `tab`, `vsplit`, and `hsplit` operations perform
|
|
999
|
+
fresh `.md` automatic detection for files that are not already represented
|
|
1000
|
+
by a normal cached buffer.
|
|
1001
|
+
- Ignore a top-level global `encoding` value read from `settings.json`.
|
|
1002
|
+
Encoding is selected per invocation or buffer; command-line encoding options
|
|
1003
|
+
remain effective for the current run and are not persisted.
|
|
1004
|
+
- Organize `--testapp.md` and `--demo` under a dedicated `Demo` section in
|
|
1005
|
+
`--help`, and document commands that overwrite source or generated files.
|
|
1006
|
+
|
|
1007
|
+
### Fixed
|
|
1008
|
+
|
|
1009
|
+
- Fix `.md` files opened from inside the editor failing to enter mdcui mode.
|
|
1010
|
+
- Fix encoding changes leaking between independent mdcui tabs.
|
|
1011
|
+
- Fix `reopen mdcui` mutating every pane that shared the original editable
|
|
1012
|
+
buffer.
|
|
1013
|
+
- Fix mdcui-to-UTF-8 reopens remaining outside the normal same-path buffer
|
|
1014
|
+
cache.
|
|
1015
|
+
- Delay applying an explicit reopen encoding until the reopen is confirmed, so
|
|
1016
|
+
canceling the save prompt does not alter the shared buffer.
|
|
1017
|
+
|
|
1018
|
+
### Security
|
|
1019
|
+
|
|
1020
|
+
- Exclude mdcui buffers completely from crash-recovery backups: they do not
|
|
1021
|
+
create, apply, prompt for, or remove backups. This prevents a derived
|
|
1022
|
+
read-only view from consuming or deleting a backup belonging to an editable
|
|
1023
|
+
view of the same Markdown source.
|
|
1024
|
+
- Remote HTTP(S) Markdown remains non-executable and does not write companion
|
|
1025
|
+
files by default.
|
|
1026
|
+
- `--allow-url` is an explicit trust boundary. It writes downloaded content and
|
|
1027
|
+
generated JavaScript/HTML files into the current directory, may overwrite
|
|
1028
|
+
files with the same names, and runs code from the remote document with the
|
|
1029
|
+
permissions of the jsmdcui process. Use it only with trusted URLs and in a
|
|
1030
|
+
directory where those writes are safe.
|
|
1031
|
+
|
|
1032
|
+
## [0.3.1] - 2026-07-16
|
|
1033
|
+
|
|
1034
|
+
### Added
|
|
1035
|
+
|
|
1036
|
+
- Add `--edit` to open Markdown files as editable UTF-8 source instead of
|
|
1037
|
+
automatically entering mdcui mode.
|
|
1038
|
+
- Add `--cat` regression coverage for implicit mdcui rendering and explicit
|
|
1039
|
+
UTF-8 overrides.
|
|
1040
|
+
|
|
1041
|
+
### Fixed
|
|
1042
|
+
|
|
1043
|
+
- Prevent an explicit encoding choice from being replaced by automatic mdcui
|
|
1044
|
+
detection.
|
|
1045
|
+
- Correct terminal raw-mode handling around log and prompt output.
|
|
1046
|
+
|
|
1047
|
+
## [0.3.0] - 2026-07-16
|
|
1048
|
+
|
|
1049
|
+
Initial usable release, based on the bunmicro terminal editor.
|
|
1050
|
+
|
|
1051
|
+
### Added
|
|
1052
|
+
|
|
1053
|
+
- Open local Markdown files as interactive, read-only terminal interfaces while
|
|
1054
|
+
retaining navigation, selection, search, copy, mouse support, and automatic
|
|
1055
|
+
reflow when the terminal is resized.
|
|
1056
|
+
- Open HTTP(S) Markdown files in the terminal without generating local
|
|
1057
|
+
companion files or executing their `javascript:` links.
|
|
1058
|
+
- Start a browser interface with `--wui [FILE.md]`. Browser pages support normal
|
|
1059
|
+
links, clickable `javascript:` actions, heading anchors, and task checkboxes
|
|
1060
|
+
that can be toggled for the current page session.
|
|
1061
|
+
- Build interactive Markdown apps with `js front`, `js back`, and
|
|
1062
|
+
`javascript:` links. Frontend actions can use `alert`, `confirm`, `prompt`,
|
|
1063
|
+
and call published backend functions through `rpc`.
|
|
1064
|
+
- Activate local terminal actions with `Enter`, `Space`, or a left click, with
|
|
1065
|
+
visible reporting for synchronous and asynchronous frontend errors.
|
|
1066
|
+
- Generate five companion files beside each local Markdown source:
|
|
1067
|
+
`.front.js`, `.back.js`, `.html`, `-rpc.js`, and `-server.js`.
|
|
1068
|
+
- Print terminal output with `--cat`, print the bundled example source with
|
|
1069
|
+
`--testapp.md`, and choose a WUI port with the `PORT` environment variable.
|
|
1070
|
+
- Provide the `jsmdcui`, `tui`, and `wui` launchers, Bun scripts for common
|
|
1071
|
+
development tasks, bundled runtime assets, and experimental single-executable
|
|
1072
|
+
build commands.
|
|
1073
|
+
- Retain the normal bunmicro-based editor for non-Markdown buffers, including
|
|
1074
|
+
file editing, syntax highlighting, search and replace, undo and redo, tabs,
|
|
1075
|
+
split panes, clipboard support, themes, and shell commands.
|
|
1076
|
+
- Show this README as the built-in `Ctrl-G` help page.
|
|
1077
|
+
|
|
1078
|
+
### Changed
|
|
1079
|
+
|
|
1080
|
+
- Local `.md` files now enter read-only Markdown UI mode automatically. Starting
|
|
1081
|
+
jsmdcui without a file still opens the normal terminal editor.
|
|
1082
|
+
- Opening or rendering a local Markdown file regenerates its five companion
|
|
1083
|
+
files in terminal, `--cat`, and `--wui` modes.
|
|
1084
|
+
- Running `--wui` without a file uses `testapp.md` in the current directory when
|
|
1085
|
+
present, otherwise the bundled demo, and writes generated files in the current
|
|
1086
|
+
directory.
|
|
1087
|
+
- Every WUI start prints a fresh UUID-based page URL. Requests without the
|
|
1088
|
+
trailing slash redirect to the canonical page URL.
|
|
1089
|
+
- `js front` and `js back` blocks are removed from the displayed Markdown and
|
|
1090
|
+
written to their generated modules.
|
|
1091
|
+
|
|
1092
|
+
### Fixed
|
|
1093
|
+
|
|
1094
|
+
- Preserved Markdown ANSI colors in the terminal UI and prevented the rendered
|
|
1095
|
+
document background from obscuring the editor theme.
|
|
1096
|
+
- Correctly detected links at the active terminal cell and loaded the matching
|
|
1097
|
+
generated frontend module.
|
|
1098
|
+
- Restored terminal display state after `alert`, `confirm`, and `prompt`.
|
|
1099
|
+
- Reported frontend errors instead of letting them crash or silently fail.
|
|
1100
|
+
- Corrected generated module paths and imports, supported bundled runtime
|
|
1101
|
+
templates, and removed redundant file generation.
|
|
1102
|
+
- Made JavaScript plugin commands available through command lookup and
|
|
1103
|
+
completion, and added `js`, `py`, and `sh` choices for `eval` completion.
|
|
1104
|
+
|
|
1105
|
+
### Security
|
|
1106
|
+
|
|
1107
|
+
- Browser RPC discovery and calls expose only exported backend functions whose
|
|
1108
|
+
exported names do not begin with `_`. This restriction applies to WUI RPC;
|
|
1109
|
+
the local TUI imports the backend module directly.
|
|
1110
|
+
- WUI pages use a fresh UUID path on each start. This reduces accidental
|
|
1111
|
+
discovery but is not authentication or authorization.
|
|
1112
|
+
- The WUI has no login or HTTPS, may be reachable through the machine's network
|
|
1113
|
+
interfaces, and permits cross-origin RPC responses. Anyone who can reach it
|
|
1114
|
+
and obtains the complete URL can call every backend function published by the
|
|
1115
|
+
Markdown app.
|
|
1116
|
+
- Frontend code runs in the browser, while terminal frontend code and backend
|
|
1117
|
+
code can run with the permissions of the jsmdcui process. Only open or serve
|
|
1118
|
+
Markdown apps from trusted sources.
|