buninu-linux 0.15.58 → 0.16.59
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/NOTICE.md +46 -46
- package/README.md +22 -15
- package/README.zh.md +22 -15
- package/initramfs/buninu/CHANGELOG.md +47 -0
- package/initramfs/buninu/apps/jsgotty/LICENSES/MIT-jsmdcui.txt +22 -0
- package/initramfs/buninu/apps/jsgotty/NOTICE +5 -0
- package/initramfs/buninu/apps/jsgotty/README.en.md +21 -0
- package/initramfs/buninu/apps/jsgotty/README.md +21 -0
- package/initramfs/buninu/apps/jsgotty/client-modes.mjs +117 -0
- package/initramfs/buninu/apps/jsgotty/client.mjs +100 -10
- package/initramfs/buninu/apps/jsgotty/clipboard-powershell.js +18 -0
- package/initramfs/buninu/apps/jsgotty/clipboard.js +148 -0
- package/initramfs/buninu/apps/jsgotty/gotty.js +13 -0
- package/initramfs/buninu/apps/jsgotty/package-lock.json +2 -2
- package/initramfs/buninu/apps/jsgotty/package.json +1 -1
- package/initramfs/buninu/apps/jsgotty/static/css/index.css +14 -1
- package/initramfs/buninu/apps/jsgotty/static/js/gotty.js +107 -8
- package/initramfs/buninu/apps/jsgotty/static/js/kitty.js +115 -7
- package/initramfs/buninu/apps/jsgotty/terminal-modes.js +332 -0
- package/initramfs/buninu/apps/jsgotty/tests/client-exit.test.mjs +45 -0
- package/initramfs/buninu/apps/jsgotty/tests/client-modes.test.mjs +105 -0
- package/initramfs/buninu/apps/jsgotty/tests/clipboard-browser.test.js +81 -0
- package/initramfs/buninu/apps/jsgotty/tests/clipboard.test.js +75 -0
- package/initramfs/buninu/apps/jsgotty/tests/manual/zoom-collector.cjs +55 -0
- package/initramfs/buninu/apps/jsgotty/tests/manual/zoom-debug.js +39 -0
- package/initramfs/buninu/apps/jsgotty/tests/manual-touch-diagnostics.js +33 -0
- package/initramfs/buninu/apps/jsgotty/tests/manual-touch-diagnostics.mjs +22 -0
- package/initramfs/buninu/apps/jsgotty/tests/nested-cli-pty.test.mjs +116 -0
- package/initramfs/buninu/apps/jsgotty/tests/reconnect-modes-browser.test.js +144 -0
- package/initramfs/buninu/apps/jsgotty/tests/reconnect-modes.md +44 -0
- package/initramfs/buninu/apps/jsgotty/tests/reconnect-modes.test.js +166 -0
- package/initramfs/buninu/apps/jsgotty/tests/touch-drag-browser.test.js +106 -0
- package/initramfs/buninu/apps/jsgotty/tests/wheel-browser.test.js +60 -0
- package/initramfs/buninu/apps/jsmdcui/CHANGELOG.md +44 -0
- package/initramfs/buninu/apps/jsmdcui/package.json +1 -1
- package/initramfs/buninu/apps/jsmdcui/src/highlight/go-regexp.js +83 -0
- package/initramfs/buninu/apps/jsmdcui/src/highlight/highlighter.js +49 -62
- package/initramfs/buninu/apps/jsmdcui/src/highlight/parser.js +8 -5
- package/initramfs/buninu/apps/jsmdcui/tests/go-regexp.test.js +98 -0
- package/initramfs/buninu/apps/jsmdcui/tests/heading-ids.test.js +21 -16
- package/initramfs/buninu/apps/jsmdcui/tests/highlight-regions.test.js +73 -0
- package/initramfs/buninu/apps/jsmdcui/tests/id-collision.test.js +32 -9
- package/initramfs/buninu/apps/jsmdcui/tests/markdown-behavior.mjs +9 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/NORMAL-HTML.md +46 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/README.md +85 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/REPORT.md +328 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/compare.mjs +75 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/go.mod +5 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/normal-html-report.json +619 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/normal-html.html +9 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/oracle.go +49 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/report.json +2174 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/PowerShell.txt +39 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/ada.txt +25 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/apacheconf.txt +49 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/arduino.txt +38 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/asciidoc.txt +33 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/asm.txt +77 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/ats.txt +48 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/awk.txt +28 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/b.txt +27 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/bat.txt +39 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/c.txt +34 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/caddyfile.txt +14 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/cake.txt +7 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/clojure.txt +18 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/cmake.txt +20 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/coffeescript.txt +32 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/colortest.txt +19 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/conky.txt +12 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/cpp.txt +46 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/crontab.txt +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/crystal.txt +28 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/csharp.txt +28 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/css.txt +19 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/csx.txt +7 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/cuda.txt +37 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/cython.txt +22 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/d.txt +52 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/dart.txt +27 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/default.txt +8 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/dockerfile.txt +10 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/dot.txt +15 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/elixir.txt +23 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/elm.txt +20 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/erb.txt +32 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/erlang.txt +23 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/fish.txt +20 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/forth.txt +17 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/fortran.txt +40 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/freebsd-kernel.txt +10 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/fsharp.txt +27 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/gdscript.txt +26 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/gemini.txt +11 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/gentoo-ebuild.txt +28 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/gentoo-etc-portage.txt +14 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/git-commit.txt +19 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/git-config.txt +11 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/git-rebase-todo.txt +10 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/gleam.txt +44 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/glsl.txt +18 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/gnuplot.txt +11 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/go.txt +33 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/godoc.txt +9 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/golo.txt +50 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/gomod.txt +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/graphql.txt +20 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/groff.txt +18 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/groovy.txt +42 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/haml.txt +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/hare.txt +31 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/haskell.txt +26 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/hc.txt +28 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/html.txt +26 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/html4.txt +20 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/html5.txt +20 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/ini.txt +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/inputrc.txt +14 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/java.txt +18 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/javascript.txt +41 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/jinja2.txt +13 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/json.txt +21 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/jsonnet.txt +28 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/julia.txt +24 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/justfile.txt +26 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/keymap.txt +15 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/kickstart.txt +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/kotlin.txt +30 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/kvlang.txt +37 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/ledger.txt +13 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/lfe.txt +17 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/lilypond.txt +15 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/lisp.txt +17 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/log.txt +45 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/lua.txt +48 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/mail.txt +17 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/makefile.txt +25 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/man.txt +12 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/markdown.txt +21 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/mc.txt +11 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/meson.txt +29 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/micro.txt +25 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/mpdconf.txt +13 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/msbuild.txt +7 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/nanorc.txt +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/nftables.txt +22 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/nginx.txt +17 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/nim.txt +23 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/nix.txt +15 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/nu.txt +92 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/objc.txt +36 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/ocaml.txt +25 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/octave.txt +35 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/odin.txt +35 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/pascal.txt +22 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/patch.txt +13 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/peg.txt +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/perl.txt +27 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/php.txt +44 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/pkg-config.txt +12 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/po.txt +12 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/pony.txt +29 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/pov.txt +17 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/privoxy-action.txt +14 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/privoxy-config.txt +10 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/privoxy-filter.txt +12 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/proto.txt +22 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/prql.txt +42 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/puppet.txt +22 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/python2.txt +24 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/python3.txt +28 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/r.txt +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/raku.txt +19 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/reST.txt +18 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/renpy.txt +11 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/rpmspec.txt +31 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/ruby.txt +34 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/rust.txt +27 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/sage.txt +24 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/scad.txt +23 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/scala.txt +16 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/sed.txt +12 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/sh.txt +20 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/sls.txt +15 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/smalltalk.txt +28 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/solidity.txt +26 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/sql.txt +35 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/stata.txt +32 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/svelte.txt +10 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/swift.txt +53 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/systemd.txt +15 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/tcl.txt +17 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/terraform.txt +28 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/tex.txt +15 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/toml.txt +31 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/twig.txt +29 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/typescript.txt +32 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/v.txt +47 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/vala.txt +22 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/verilog.txt +37 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/vhdl.txt +37 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/vi.txt +17 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/vue.txt +29 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/xml.txt +14 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/xresources.txt +14 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/yaml.txt +19 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/yum.txt +12 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/zig.txt +24 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/zscript.txt +31 -0
- package/initramfs/buninu/apps/jsmdcui/tests/syntax-parity/samples/zsh.txt +21 -0
- package/initramfs/buninu/package.json +1 -1
- package/initramfs/lib/bunterm/images.js +5 -1
- package/initramfs/lib/bunterm/raw-protocol.js +82 -4
- package/initramfs/lib/bunterm/renderer.js +35 -16
- package/initramfs/lib/bunterm/terminal.js +11 -1
- package/initramfs/lib/fbdev.js +11 -5
- package/initramfs/lib/mapped-frame.js +28 -0
- package/initramfs/lib/raw-image.js +29 -5
- package/package.json +1 -1
- package/scripts/arch.js +5 -5
- package/scripts/arch.sh +5 -5
- package/scripts/npm-packages.md +11 -10
- package/test/bunterm-image-bytes.test.js +15 -0
- package/test/bunterm-mapped-lifetime.test.js +147 -0
- package/test/bunterm-raw-protocol.test.js +20 -0
- package/test/bunterm-renderer.test.js +9 -0
- package/test/fbdev-sync.test.js +9 -0
- package/test/fetch-npm.test.js +2 -2
package/NOTICE.md
CHANGED
|
@@ -156,83 +156,83 @@ the built image redistributes them.
|
|
|
156
156
|
- License: GPL-2.0-only WITH Linux-syscall-note
|
|
157
157
|
- See: `LICENSES/GPL-2.0.txt` and `LICENSES/Linux-syscall-note.txt`
|
|
158
158
|
|
|
159
|
-
Linux 6.18.
|
|
160
|
-
The default build uses package `linux-virt`, version 6.18.
|
|
161
|
-
`--linux-lts` and `--real` use package `linux-lts`, version 6.18.
|
|
159
|
+
Linux 6.18.59 as packaged by Alpine Linux 3.24 from the `linux-lts` aport.
|
|
160
|
+
The default build uses package `linux-virt`, version 6.18.59-r0.
|
|
161
|
+
`--linux-lts` and `--real` use package `linux-lts`, version 6.18.59-r0.
|
|
162
162
|
Each comes from the x86_64 or aarch64 repository to match `--arch`. All
|
|
163
163
|
listed modules are the selected package's `.ko.gz` files decompressed without
|
|
164
164
|
modification.
|
|
165
165
|
|
|
166
|
-
- Upstream source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.
|
|
166
|
+
- Upstream source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.59.tar.xz
|
|
167
167
|
- Alpine build recipe, configuration and patches (Corresponding Source),
|
|
168
|
-
pinned to the commit shipping 6.18.
|
|
169
|
-
https://gitlab.alpinelinux.org/alpine/aports/-/blob/
|
|
168
|
+
pinned to the commit shipping 6.18.59-r0 (the same for both architectures):
|
|
169
|
+
https://gitlab.alpinelinux.org/alpine/aports/-/blob/36d3ca8442f7d978ad15bf4be74b7a4ff7bf815e/main/linux-lts/APKBUILD
|
|
170
170
|
- Packages:
|
|
171
|
-
https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/linux-virt-6.18.
|
|
172
|
-
SHA-256 `
|
|
173
|
-
https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/linux-lts-6.18.
|
|
174
|
-
SHA-256 `
|
|
175
|
-
https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-virt-6.18.
|
|
176
|
-
SHA-256 `
|
|
177
|
-
https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-lts-6.18.
|
|
178
|
-
SHA-256 `
|
|
171
|
+
https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/linux-virt-6.18.59-r0.apk
|
|
172
|
+
SHA-256 `73ad4774ca26c196103a00e2fb8d28ed02de4c08c11fad96e903da03dcb085f4`
|
|
173
|
+
https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/linux-lts-6.18.59-r0.apk
|
|
174
|
+
SHA-256 `ae0a669a08c90ef971996f81f1bcb6f7ca8211ad62624ad8c5b57412c3f1def8`
|
|
175
|
+
https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-virt-6.18.59-r0.apk
|
|
176
|
+
SHA-256 `89b68fc32d61a1483ab0d9db78b5a06144ac115fe2ee8102cb4ad7987f46d524`
|
|
177
|
+
https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-lts-6.18.59-r0.apk
|
|
178
|
+
SHA-256 `f6387970517083d5f08abacbf81baf1d70e1baa8fe4c2783469f45bb0751075c`
|
|
179
179
|
|
|
180
180
|
SHA-256 of files in the default x86_64 `linux-virt` image:
|
|
181
181
|
|
|
182
182
|
```text
|
|
183
|
-
kernel/x86_64/vmlinuz-virt
|
|
184
|
-
failover.ko
|
|
185
|
-
net_failover.ko
|
|
186
|
-
virtio_net.ko
|
|
183
|
+
kernel/x86_64/vmlinuz-virt 55fcc67c770730412a505df82b80dce098083e5680a7449dc6b4eaed895de21d
|
|
184
|
+
failover.ko 21c1882e1dd7aacf48d0cc33a5848542b8d4eba9eff53b76a872d0f88cb0eacc
|
|
185
|
+
net_failover.ko b8578044a43d94f7a737792ef8918e76b3dd54b982f64721f8576e7383a1284c
|
|
186
|
+
virtio_net.ko e43e19e84dfbdf3b85b6558a791b2af0e707d1a95b291bc3d9e4d096022a0f98
|
|
187
187
|
```
|
|
188
188
|
|
|
189
189
|
SHA-256 of files in an x86_64 `--linux-lts` image:
|
|
190
190
|
|
|
191
191
|
```text
|
|
192
|
-
kernel/x86_64/vmlinuz-lts
|
|
193
|
-
failover.ko
|
|
194
|
-
net_failover.ko
|
|
195
|
-
virtio_net.ko
|
|
196
|
-
virtio_ring.ko
|
|
197
|
-
virtio.ko
|
|
198
|
-
virtio_pci_legacy_dev.ko
|
|
199
|
-
virtio_pci_modern_dev.ko
|
|
200
|
-
virtio_pci.ko
|
|
192
|
+
kernel/x86_64/vmlinuz-lts a36355ddda308e1cb7229319212485244d22991dfe00ad4c5c2de0e0a2a160ae
|
|
193
|
+
failover.ko fe224da2637ef77046211d0415d52bf44c10fc2a541ae625cb1fa5b418430904
|
|
194
|
+
net_failover.ko 80f682ad83e4d635115459b158db3c530a074bcf1ccba9c7c4105889287aa297
|
|
195
|
+
virtio_net.ko 1c15837e328e8d385ec4fb0440ecce8d09662472621c00eb742461eaf892f1a9
|
|
196
|
+
virtio_ring.ko c224f71f79e132019bfd239d6286f101fd7e561e279f336eff5650f8e06b35f0
|
|
197
|
+
virtio.ko bd6f21cb4e73ec312a1c712b20caff7595998a2e0c977e4f4d281a41fefbd743
|
|
198
|
+
virtio_pci_legacy_dev.ko f27fd98525aa69d59eafd36d9082f42a8ac96e8e4948f2a1cedd3daa0ac96e19
|
|
199
|
+
virtio_pci_modern_dev.ko e9a5fe9c4a6d65b4467b03cda06eedc92e5725a0afd2f87180bf5d62a9d380d7
|
|
200
|
+
virtio_pci.ko 0dde14759f4b7a3694f1f85705795fb42ed772e85dd189dbaf2c5fcfba211afb
|
|
201
201
|
```
|
|
202
202
|
|
|
203
203
|
`--real` additionally includes the following modules from that same
|
|
204
204
|
x86_64 `linux-lts` package for physical xHCI controllers and USB HID keyboards:
|
|
205
205
|
|
|
206
206
|
```text
|
|
207
|
-
usb-common.ko
|
|
208
|
-
usbcore.ko
|
|
209
|
-
xhci-hcd.ko
|
|
210
|
-
xhci-pci.ko
|
|
211
|
-
xhci-pci-renesas.ko
|
|
212
|
-
hid.ko
|
|
213
|
-
hid-generic.ko
|
|
214
|
-
usbhid.ko
|
|
207
|
+
usb-common.ko bd76c601653653ea9823239483bd993d26db14b6516099eff0338078f0ce11d0
|
|
208
|
+
usbcore.ko 1460d8c9a9859bfff7ddac22d108729d32f4bd1a4db7c9f4bed1eee1529259cf
|
|
209
|
+
xhci-hcd.ko da5d9b1f221c6ae64c250b84238ad05029d781858d42eb776fb279274e9c6a09
|
|
210
|
+
xhci-pci.ko 52fa7545987bf51937d52947b8df85d1c5d4afb32534ff38289fa4c738aa9237
|
|
211
|
+
xhci-pci-renesas.ko 3942d1cc3a71936f243e6c189f4e3cf90950b7077669230b24656994248aa393
|
|
212
|
+
hid.ko 9f238b469282c9112d3198e10304f98e6473877efd832053b8d35c237bf6204e
|
|
213
|
+
hid-generic.ko 37c085e37836a9d8398b6f3b7c50826f7dfe364be24ca53d2a02e9b4f7dbd04d
|
|
214
|
+
usbhid.ko e5100f737e69e8b6407371c51be3f0ead720058209bf450eb587caa080eea535
|
|
215
215
|
```
|
|
216
216
|
|
|
217
217
|
SHA-256 of files in the default aarch64 `linux-virt` image:
|
|
218
218
|
|
|
219
219
|
```text
|
|
220
|
-
kernel/aarch64/vmlinuz-virt
|
|
221
|
-
failover.ko
|
|
222
|
-
net_failover.ko
|
|
223
|
-
virtio_net.ko
|
|
220
|
+
kernel/aarch64/vmlinuz-virt 200c82866453b2faa2c39e53b5bdd04368153c767f014c9e5bbb8ac6b76cde0d
|
|
221
|
+
failover.ko be03d9e43cb15fdc2ab76f5bed6dbb2ab4385159cddd7ec5182ac1534408deb9
|
|
222
|
+
net_failover.ko 0fbcf10f4e7255ae3fb8e560ed96ed57908e40456022ace26437d1dbc84fc8d7
|
|
223
|
+
virtio_net.ko 552285e13b3722e0006d2bdf9efe950409b5f8e93295c4e59c013a16e116183a
|
|
224
224
|
```
|
|
225
225
|
|
|
226
226
|
SHA-256 of files in an aarch64 `--linux-lts` image:
|
|
227
227
|
|
|
228
228
|
```text
|
|
229
|
-
kernel/aarch64/vmlinuz-lts
|
|
230
|
-
failover.ko
|
|
231
|
-
net_failover.ko
|
|
232
|
-
virtio_net.ko
|
|
233
|
-
virtio_pci_legacy_dev.ko
|
|
234
|
-
virtio_pci_modern_dev.ko
|
|
235
|
-
virtio_pci.ko
|
|
229
|
+
kernel/aarch64/vmlinuz-lts 73d5dce99b14221b7756537b71f0081e103cddcc6d46038d21223c51cc775d15
|
|
230
|
+
failover.ko 0cdc25b36316ef98bb8a97334c10ba76e925059634314df11b191b9ac8a4b813
|
|
231
|
+
net_failover.ko fa0371b74f99f8b05ff7d7e1595f810505552a5beeb1a2a4c96f0f5c12a44665
|
|
232
|
+
virtio_net.ko 3561663d1abf5a15c245b3e42732dbbca59590e52f5abf934816320a9f9eba90
|
|
233
|
+
virtio_pci_legacy_dev.ko 59a78df1890892581f8653327972a6cb7312d1538fe118c446cfc9562b42208a
|
|
234
|
+
virtio_pci_modern_dev.ko 39e0c7a21ac529290fbb105c09670808ecf06e7c95f2cd7baa280988ef8b8263
|
|
235
|
+
virtio_pci.ko c0943a24ef93d5f977272f1392f2165977804049c7e98b365ab5101f46def1af
|
|
236
236
|
```
|
|
237
237
|
|
|
238
238
|
### linuxx64.efi.stub and linuxaa64.efi.stub
|
package/README.md
CHANGED
|
@@ -432,17 +432,6 @@ Run `poweroff` for a synced shutdown.
|
|
|
432
432
|
|
|
433
433
|
### Using bunterm
|
|
434
434
|
|
|
435
|
-
Click the FPS button on the right of the bunterm menu title to toggle a cyan counter at the top-right of the terminal. It reports newly presented Kitty image frames per second (such as Casty/Land output), sampled once per second; mouse/menu redraws are excluded. Static images and text-only sessions show 0 FPS. The setting is local to this bunterm session and defaults off.
|
|
436
|
-
|
|
437
|
-
Native bunterm advertises its preferred raw pixel format from the framebuffer bitfields: BGRA or RGBA for supported 32-bit layouts, otherwise PNG. Updated Casty, buninu-browser and Land negotiate this automatically over shared-file Kitty transport; BGRA uses the private format `f=1111970369`, RGBA uses standard `f=32`. Other terminals and jsgotty retain their existing protocol.
|
|
438
|
-
|
|
439
|
-
To inspect the current picture path in Casty, press `Ctrl-E`, type `kitty`,
|
|
440
|
-
and press Enter. In Land, click **@** instead to open the command line.
|
|
441
|
-
For example, `Kitty: file · format=bgra` reports shared-file raw frames;
|
|
442
|
-
`rgba` is also raw, while PNG/JPEG indicate encoded images. Raw is negotiated
|
|
443
|
-
automatically with supported local peers; no extra launch flag is needed.
|
|
444
|
-
The bunterm FPS counter measures presented images, not a client's rendering FPS.
|
|
445
|
-
|
|
446
435
|
`bunterm` is the graphical terminal on the Linux framebuffer. It displays CJK
|
|
447
436
|
text, colour emoji and Kitty graphics without starting X11 or Wayland. On the
|
|
448
437
|
real-hardware image, enter the shell with `start()` at the `bun-repl>` prompt,
|
|
@@ -497,6 +486,17 @@ when the application disables Kitty or bunterm exits. VT-switching shortcuts sta
|
|
|
497
486
|
reserved. Dead-key/Compose sequences are not yet implemented in Kitty mode.
|
|
498
487
|
Use `bunterm --help` for full options and keyboard details.
|
|
499
488
|
|
|
489
|
+
Casty is the default terminal frontend for [buninu-browser](#buninu-browser-early-stage-experimental) and [buninu-land](#buninu-land-early-stage-experimental): it displays their graphics inside bunterm and forwards keyboard and mouse input. See the linked sections below for usage.
|
|
490
|
+
|
|
491
|
+
Click the FPS button on the right of the bunterm menu title to toggle a cyan counter at the top-right of the terminal. It reports newly presented Kitty image frames per second (such as Casty/Land output), sampled once per second; mouse/menu redraws are excluded. Static images and text-only sessions show 0 FPS. The setting is local to this bunterm session and defaults off.
|
|
492
|
+
|
|
493
|
+
To inspect the current picture path in Casty, press `Ctrl-E`, type `kitty`,
|
|
494
|
+
and press Enter. In Land, click **@** instead to open the command line.
|
|
495
|
+
For example, `Kitty: file · format=bgra` reports shared-file raw frames;
|
|
496
|
+
`rgba` is also raw, while PNG/JPEG indicate encoded images. Raw is negotiated
|
|
497
|
+
automatically with supported local peers; no extra launch flag is needed.
|
|
498
|
+
The bunterm FPS counter measures presented images, not a client's rendering FPS.
|
|
499
|
+
|
|
500
500
|
### Using Bun Modern Shell
|
|
501
501
|
|
|
502
502
|
bunmsh is the dependency-free, mksh-inspired shell bundled with Buninu. Its
|
|
@@ -1415,7 +1415,7 @@ initramfs/ init.js, commands, userspace: the same for every archi
|
|
|
1415
1415
|
native/<arch>/ musl and the GCC runtime (committed); bun and modules (fetched)
|
|
1416
1416
|
```
|
|
1417
1417
|
|
|
1418
|
-
The `--real` inputs are Alpine v3.24 `linux-lts-6.18.
|
|
1418
|
+
The `--real` inputs are Alpine v3.24 `linux-lts-6.18.59-r0`, musl `1.2.6-r2`,
|
|
1419
1419
|
`systemd-efistub-260.2-r0`, `libstdc++`/`libgcc` `15.2.0-r5`, and Bun 1.4.2
|
|
1420
1420
|
`linux-x64-musl-baseline`. The aarch64 guest uses the same versions from
|
|
1421
1421
|
Alpine's aarch64 repository and Bun's `linux-aarch64-musl`. There is no BusyBox
|
|
@@ -1577,7 +1577,7 @@ The physical boot chain is firmware → the UKI stub → its embedded
|
|
|
1577
1577
|
and, with the currently pinned kernel, embeds this complete command line:
|
|
1578
1578
|
|
|
1579
1579
|
```text
|
|
1580
|
-
console=ttyS0,115200 console=tty0 REAL_MACHINE=1 panic=0 PATH=/bin KERNEL_RELEASE=6.18.
|
|
1580
|
+
console=ttyS0,115200 console=tty0 REAL_MACHINE=1 panic=0 PATH=/bin KERNEL_RELEASE=6.18.59-0-lts rdinit=/bin/bun -- -e import('/init.js')
|
|
1581
1581
|
```
|
|
1582
1582
|
|
|
1583
1583
|
Serial kernel logging is retained, while the final console makes
|
|
@@ -1601,7 +1601,7 @@ the same way). Build without `--real`; this selects Alpine `linux-virt`, omits t
|
|
|
1601
1601
|
module set, and puts `ttyS0` last so serial stdio owns `/dev/console`:
|
|
1602
1602
|
|
|
1603
1603
|
```text
|
|
1604
|
-
console=tty0 console=ttyS0,115200 panic=0 PATH=/bin KERNEL_RELEASE=6.18.
|
|
1604
|
+
console=tty0 console=ttyS0,115200 panic=0 PATH=/bin KERNEL_RELEASE=6.18.59-0-virt rdinit=/bin/bun -- -e import('/init.js')
|
|
1605
1605
|
```
|
|
1606
1606
|
|
|
1607
1607
|
Build and boot it with:
|
|
@@ -1712,13 +1712,19 @@ the wired NICs, Android USB-tethering drivers and the ACPI power drivers. Alpine
|
|
|
1712
1712
|
kernels build all of these as modules; a self-built kernel with them `=y`
|
|
1713
1713
|
works the same way, the loaders just find nothing to load.
|
|
1714
1714
|
|
|
1715
|
+
#### Bunterm image transport
|
|
1716
|
+
|
|
1717
|
+
Native bunterm advertises its preferred raw pixel format from the framebuffer bitfields: BGRA or RGBA for supported 32-bit layouts, otherwise PNG. Updated Casty, buninu-browser and Land negotiate this automatically over shared-file Kitty transport; BGRA uses the private format `f=1111970369`, RGBA uses standard `f=32`. Other terminals and jsgotty retain their existing protocol.
|
|
1718
|
+
|
|
1719
|
+
Raw temporary frames use mmap when available. bunterm releases each mapping as soon as the parser, renderer and in-flight packet handler have all finished with it, avoiding batches of old frames being reclaimed in a later GC pause. Shared placements retain their image; unsupported immediate release falls back to garbage collection.
|
|
1720
|
+
|
|
1715
1721
|
#### Reaching JavaScript with nothing mounted
|
|
1716
1722
|
|
|
1717
1723
|
The default `--real` image embeds this kernel command line (shown for the
|
|
1718
1724
|
currently pinned LTS release):
|
|
1719
1725
|
|
|
1720
1726
|
```text
|
|
1721
|
-
console=ttyS0,115200 console=tty0 REAL_MACHINE=1 panic=0 PATH=/bin KERNEL_RELEASE=6.18.
|
|
1727
|
+
console=ttyS0,115200 console=tty0 REAL_MACHINE=1 panic=0 PATH=/bin KERNEL_RELEASE=6.18.59-0-lts rdinit=/bin/bun -- -e import('/init.js')
|
|
1722
1728
|
```
|
|
1723
1729
|
|
|
1724
1730
|
The physical display (`tty0`) is the final console and therefore owns PID 1's
|
|
@@ -1961,6 +1967,7 @@ driver, Android KGSL, or board-specific ARM GPU/DT/firmware enablement.
|
|
|
1961
1967
|
+ [QEMU development](#qemu-development)
|
|
1962
1968
|
- [QEMU networking](#qemu-networking)
|
|
1963
1969
|
+ [Command implementation](#command-implementation)
|
|
1970
|
+
+ [Bunterm image transport](#bunterm-image-transport)
|
|
1964
1971
|
+ [Reaching JavaScript with nothing mounted](#reaching-javascript-with-nothing-mounted)
|
|
1965
1972
|
+ [What init.js does](#what-initjs-does)
|
|
1966
1973
|
* [Optional client GPU acceleration (`cfg.gpu`)](#optional-client-gpu-acceleration-cfggpu)
|
package/README.zh.md
CHANGED
|
@@ -432,17 +432,6 @@ mount -fv /dev/sda1 /mnt
|
|
|
432
432
|
|
|
433
433
|
### 使用終端機
|
|
434
434
|
|
|
435
|
-
點擊 bunterm 選單標題右側的 FPS 按鈕,可開啟/關閉終端右上角的青藍色計數器。它每秒取樣一次,統計實際呈現的新 Kitty 圖片幀(例如 Casty/Land 輸出),不計滑鼠與選單重畫。靜態圖片與純文字工作階段顯示 0 FPS。設定僅作用於目前 bunterm,預設關閉。
|
|
436
|
-
|
|
437
|
-
原生 bunterm 依 framebuffer 的位元欄位宣告偏好的原始像素格式:支援的 32 位元排列採用 BGRA 或 RGBA,其餘回報 PNG。新版 Casty、buninu-browser 與 Land 透過 Kitty 共用檔案傳輸自動協商;BGRA 使用私有格式 `f=1111970369`,RGBA 使用標準 `f=32`。其他終端機與 jsgotty 維持既有協議。
|
|
438
|
-
|
|
439
|
-
若要查看 Casty 目前的畫面傳輸路徑,按 `Ctrl-E`,輸入 `kitty`,
|
|
440
|
-
再按 Enter。在 Land 中則點擊 **@** 開啟命令列。
|
|
441
|
-
例如 `Kitty: file · format=bgra` 表示透過共用檔案傳送原始像素;
|
|
442
|
-
`rgba` 也是原始像素,PNG/JPEG 則表示已編碼圖片。支援的本機兩端
|
|
443
|
-
會自動協商 raw,不需要額外啟動旗標。
|
|
444
|
-
bunterm 的 FPS 計數器統計實際呈現的圖片,不是客戶端本身的渲染 FPS。
|
|
445
|
-
|
|
446
435
|
`bunterm` 是 Linux framebuffer 上的圖形終端機,不必啟動
|
|
447
436
|
X11 或 Wayland 即可顯示中日韓文字、彩色 emoji 與 Kitty
|
|
448
437
|
圖形。在真機映像中,於 `bun-repl>` 提示用 `start()` 進入
|
|
@@ -497,6 +486,17 @@ HTTP/HTTPS 與 `about:` URL 直接開啟;本機路徑與 `file://` URL
|
|
|
497
486
|
Kitty 模式尚未實作 dead key/Compose 序列。完整
|
|
498
487
|
選項與鍵盤細節見 `bunterm --help`。
|
|
499
488
|
|
|
489
|
+
Casty 是 [buninu-browser](#內建瀏覽器的早期實驗支援) 和 [buninu-land](#內建合成器的早期實驗支援) 的預設終端前端,負責將畫面顯示在 bunterm 裡,並轉送鍵盤與滑鼠輸入。使用方式請見連結指向的後續章節。
|
|
490
|
+
|
|
491
|
+
點擊 bunterm 選單標題右側的 FPS 按鈕,可開啟/關閉終端右上角的青藍色計數器。它每秒取樣一次,統計實際呈現的新 Kitty 圖片幀(例如 Casty/Land 輸出),不計滑鼠與選單重畫。靜態圖片與純文字工作階段顯示 0 FPS。設定僅作用於目前 bunterm,預設關閉。
|
|
492
|
+
|
|
493
|
+
若要查看 Casty 目前的畫面傳輸路徑,按 `Ctrl-E`,輸入 `kitty`,
|
|
494
|
+
再按 Enter。在 Land 中則點擊 **@** 開啟命令列。
|
|
495
|
+
例如 `Kitty: file · format=bgra` 表示透過共用檔案傳送原始像素;
|
|
496
|
+
`rgba` 也是原始像素,PNG/JPEG 則表示已編碼圖片。支援的本機兩端
|
|
497
|
+
會自動協商 raw,不需要額外啟動旗標。
|
|
498
|
+
bunterm 的 FPS 計數器統計實際呈現的圖片,不是客戶端本身的渲染 FPS。
|
|
499
|
+
|
|
500
500
|
### 使用命令殼層
|
|
501
501
|
|
|
502
502
|
bunmsh 是 Buninu 內附、受 mksh 啟發且無外部依賴的 shell。
|
|
@@ -1415,7 +1415,7 @@ initramfs/ init.js, commands, userspace: the same for every archi
|
|
|
1415
1415
|
native/<arch>/ musl and the GCC runtime (committed); bun and modules (fetched)
|
|
1416
1416
|
```
|
|
1417
1417
|
|
|
1418
|
-
`--real` 的輸入為 Alpine v3.24 `linux-lts-6.18.
|
|
1418
|
+
`--real` 的輸入為 Alpine v3.24 `linux-lts-6.18.59-r0`、musl
|
|
1419
1419
|
`1.2.6-r2`、`systemd-efistub-260.2-r0`、`libstdc++`/`libgcc`
|
|
1420
1420
|
`15.2.0-r5`,以及 Bun 1.4.2 `linux-x64-musl-baseline`。aarch64
|
|
1421
1421
|
客體使用 Alpine aarch64 儲存庫的相同版本與 Bun 的 `linux-aarch64-musl`。
|
|
@@ -1577,7 +1577,7 @@ MiB 對齊,尾端保留 34 個磁區
|
|
|
1577
1577
|
包含 xHCI 與 USB HID 模組鏈,目前鎖定核心使用以下完整命令列:
|
|
1578
1578
|
|
|
1579
1579
|
```text
|
|
1580
|
-
console=ttyS0,115200 console=tty0 REAL_MACHINE=1 panic=0 PATH=/bin KERNEL_RELEASE=6.18.
|
|
1580
|
+
console=ttyS0,115200 console=tty0 REAL_MACHINE=1 panic=0 PATH=/bin KERNEL_RELEASE=6.18.59-0-lts rdinit=/bin/bun -- -e import('/init.js')
|
|
1581
1581
|
```
|
|
1582
1582
|
|
|
1583
1583
|
保留序列核心日誌,最後指定的主控台則讓
|
|
@@ -1601,7 +1601,7 @@ pkg install qemu-system-x86-64
|
|
|
1601
1601
|
機模組集,並將 `ttyS0` 放最後,讓序列標準輸入輸出擁有 `/dev/console`:
|
|
1602
1602
|
|
|
1603
1603
|
```text
|
|
1604
|
-
console=tty0 console=ttyS0,115200 panic=0 PATH=/bin KERNEL_RELEASE=6.18.
|
|
1604
|
+
console=tty0 console=ttyS0,115200 panic=0 PATH=/bin KERNEL_RELEASE=6.18.59-0-virt rdinit=/bin/bun -- -e import('/init.js')
|
|
1605
1605
|
```
|
|
1606
1606
|
|
|
1607
1607
|
使用以下命令建置並開機:
|
|
@@ -1712,13 +1712,19 @@ Bun 腳本。`--help` 使用 `Bun.markdown.ansi`
|
|
|
1712
1712
|
驅動及 ACPI 電源驅動。Alpine 核心將這些都建成模組;自行建置核心並將它們
|
|
1713
1713
|
設為 `=y` 也能以相同方式運作,只是載入器找不到需要載入的項目。
|
|
1714
1714
|
|
|
1715
|
+
#### 終端機影像傳輸
|
|
1716
|
+
|
|
1717
|
+
原生 bunterm 依 framebuffer 的位元欄位宣告偏好的原始像素格式:支援的 32 位元排列採用 BGRA 或 RGBA,其餘回報 PNG。新版 Casty、buninu-browser 與 Land 透過 Kitty 共用檔案傳輸自動協商;BGRA 使用私有格式 `f=1111970369`,RGBA 使用標準 `f=32`。其他終端機與 jsgotty 維持既有協議。
|
|
1718
|
+
|
|
1719
|
+
原始像素暫存影格在可用時採用 mmap。bunterm 會在 parser、renderer 與處理中的封包全部使用完畢後立即釋放映射,避免累積舊影格到之後的 GC 才整批回收而停頓。共用的 placement 仍會保留影像;不支援立即釋放時則退回垃圾回收。
|
|
1720
|
+
|
|
1715
1721
|
#### 尚未掛載時進入腳本環境
|
|
1716
1722
|
|
|
1717
1723
|
預設 `--real` 映像內嵌以下核心命令列(此處為目前
|
|
1718
1724
|
鎖定的 LTS 版本):
|
|
1719
1725
|
|
|
1720
1726
|
```text
|
|
1721
|
-
console=ttyS0,115200 console=tty0 REAL_MACHINE=1 panic=0 PATH=/bin KERNEL_RELEASE=6.18.
|
|
1727
|
+
console=ttyS0,115200 console=tty0 REAL_MACHINE=1 panic=0 PATH=/bin KERNEL_RELEASE=6.18.59-0-lts rdinit=/bin/bun -- -e import('/init.js')
|
|
1722
1728
|
```
|
|
1723
1729
|
|
|
1724
1730
|
實體螢幕(`tty0`)是最後指定的主控台,因此擁有 PID 1 的
|
|
@@ -1961,6 +1967,7 @@ KGSL 或特定 ARM 板子的 GPU/DT/韌體啟用支援。
|
|
|
1961
1967
|
+ [虛擬機開發](#虛擬機開發)
|
|
1962
1968
|
- [虛擬機網路](#虛擬機網路)
|
|
1963
1969
|
+ [命令實作](#命令實作)
|
|
1970
|
+
+ [終端機影像傳輸](#終端機影像傳輸)
|
|
1964
1971
|
+ [尚未掛載時進入腳本環境](#尚未掛載時進入腳本環境)
|
|
1965
1972
|
+ [初始化腳本的工作](#初始化腳本的工作)
|
|
1966
1973
|
* [可選的客戶端圖形加速](#可選的客戶端圖形加速)
|
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.7.0 - 2026-10-26
|
|
4
|
+
|
|
5
|
+
- Sync jsgotty to 1.4.0:
|
|
6
|
+
* Add horizontal and diagonal scrolling through terminal mouse reporting,
|
|
7
|
+
including Shift-wheel horizontal scrolling and preserved wheel modifiers.
|
|
8
|
+
* Double-tap and hold the second tap to drag with the left mouse button when
|
|
9
|
+
application mouse reporting is enabled. Release the button on touch
|
|
10
|
+
cancellation, backgrounding or disconnect; ordinary swipes still scroll.
|
|
11
|
+
* Add Right click to the existing image long-press menu, sending the click
|
|
12
|
+
at the position where the menu was opened without removing the image.
|
|
13
|
+
* Prevent Android WebView from automatically zooming the terminal's hidden
|
|
14
|
+
input after native long-press paste, including at reduced viewport zoom.
|
|
15
|
+
Keep native paste, IME input and pinch zoom on the visible terminal.
|
|
16
|
+
- Sync jsmdcui to 0.19.4:
|
|
17
|
+
* Restore Dockerfile highlighting and improve compatibility with Micro's
|
|
18
|
+
syntax definitions by translating Go regexp flags and POSIX character
|
|
19
|
+
classes while preserving scoped flags.
|
|
20
|
+
* Fix nested HTML/XML highlighting regions so quoted attributes return to
|
|
21
|
+
their enclosing tags and unfinished attributes retain state across lines.
|
|
22
|
+
* Use iterative region scanning to support long minified lines without
|
|
23
|
+
recursive stack exhaustion or truncating highlighting.
|
|
24
|
+
* Guard against zero-width region cycles, cyclic syntax/state trees and
|
|
25
|
+
excessively nested regexp conversion. Disable failing rules individually
|
|
26
|
+
instead of losing an entire syntax definition; retain support for long
|
|
27
|
+
lines. These guards do not impose timeouts on individual JavaScript regexps.
|
|
28
|
+
|
|
29
|
+
## 0.6.0 - 2026-10-25
|
|
30
|
+
|
|
31
|
+
- Sync jsgotty to 1.3.0:
|
|
32
|
+
* Add OSC 52 clipboard reads and writes for browser terminals using the
|
|
33
|
+
server host's clipboard. Try xclip first on every platform, then available
|
|
34
|
+
platform tools, with an in-memory fallback when all tools fail. Only the
|
|
35
|
+
session writer performs clipboard operations; CLI clients pass OSC 52
|
|
36
|
+
through to their terminal emulator.
|
|
37
|
+
* Restore mouse reporting, mouse encoding, Kitty keyboard state and other
|
|
38
|
+
terminal modes when reconnecting to an existing session, including from
|
|
39
|
+
a fresh terminal and through nested CLI clients. Preserve keyboard mode
|
|
40
|
+
stacks without unnecessarily switching screens.
|
|
41
|
+
* Probe and restore the CLI client's original terminal modes on exit;
|
|
42
|
+
handle unsupported mode replies and independently enabled mouse modes
|
|
43
|
+
without leaving stale mouse reporting behind.
|
|
44
|
+
* Fix read-only CLI viewer exit shortcuts (Ctrl-C, Ctrl-D and Ctrl-Q) when
|
|
45
|
+
the enclosing terminal uses Kitty keyboard encoding.
|
|
46
|
+
* Fix Android WebView double-tap handling at non-default viewport zoom so
|
|
47
|
+
terminal clicks reach applications instead of triggering browser zoom,
|
|
48
|
+
while retaining two-finger pinch zoom.
|
|
49
|
+
|
|
3
50
|
## 0.5.0 - 2026-10-21
|
|
4
51
|
|
|
5
52
|
- Sync jsgotty to 1.2.0:
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2016-2020: Zachary Yedidia, et al.
|
|
4
|
+
Copyright (c) 2026 Dr. John (醫者小智)
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
|
@@ -119,3 +119,8 @@ such an executable must also follow Bun's license terms, including the LGPL
|
|
|
119
119
|
relinking provisions described at
|
|
120
120
|
https://github.com/oven-sh/bun/blob/main/LICENSE.md. The executables carry
|
|
121
121
|
LICENSE, NOTICE and LICENSES/ as embedded assets.
|
|
122
|
+
|
|
123
|
+
Clipboard backend helpers reference jsmdcui (MIT).
|
|
124
|
+
clipboard-powershell.js retains its powershellClipboard function verbatim from
|
|
125
|
+
jsmdcui/src/platform/clipboard.js, Copyright (c) 2026 Dr. John (醫者小智).
|
|
126
|
+
Full source license: LICENSES/MIT-jsmdcui.txt.
|
|
@@ -332,3 +332,24 @@ bun sz.js file.txt
|
|
|
332
332
|
- Bun is the primary runtime.
|
|
333
333
|
- On Linux / macOS, PTY support will not work unless the program is launched with Bun.
|
|
334
334
|
- GoTTY config file loading is not implemented yet.
|
|
335
|
+
|
|
336
|
+
## OSC 52 clipboard
|
|
337
|
+
|
|
338
|
+
The browser frontend supports OSC 52 writes and `?` queries against the **server host's clipboard**, not the browser device's clipboard. Only the session writer can request access; viewers do not duplicate operations. Query replies are sent directly back to the originating PTY as OSC 52 sequences.
|
|
339
|
+
|
|
340
|
+
Each operation tries `xclip` first, including on Windows and Android. Missing or failing commands fall through to applicable `termux-clipboard-*`, `wl-copy`/`wl-paste`, `xsel`, macOS `pbcopy`/`pbpaste`, then Windows PowerShell. The PowerShell function is copied verbatim from jsmdcui. If all tools fail, the server uses its in-memory cache. A successful empty read remains empty, rather than returning stale cached text. There is no polling; external commands run in a worker.
|
|
341
|
+
|
|
342
|
+
Supported selections: `c` (clipboard), `p` (primary), `q` (secondary); `s` maps to clipboard, and `0`–`7` are in-memory buffers. An empty selector uses `s0`. Tools without primary/secondary support do not substitute the clipboard. Requests are limited to 1 MiB.
|
|
343
|
+
|
|
344
|
+
```sh
|
|
345
|
+
# Write to the server clipboard
|
|
346
|
+
printf '\033]52;c;%s\007' "$(printf 'Hello' | base64 | tr -d '\n')"
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
Applications can send `ESC ] 52 ; c ; ? ST` to read and receive a base64-encoded OSC 52 reply on stdin.
|
|
350
|
+
|
|
351
|
+
`jsgotty --client` **does not intercept OSC 52**: it forwards reads and writes unchanged for the outer terminal emulator to handle.
|
|
352
|
+
|
|
353
|
+
### Touch dragging and right click
|
|
354
|
+
|
|
355
|
+
When the application enables mouse reporting, double-tap and hold the second tap to drag with the left button; lifting your finger releases it. Single-finger swipes still scroll. The existing image long-press menu now includes `Right click` below `Remove image`; it sends a right click at the position where the menu was opened. Pinch zoom and the existing remove-image gesture remain unchanged. To disable double-tap dragging, set `window.touchDoubleTapDrag = false` in the page JavaScript.
|
|
@@ -334,3 +334,24 @@ bun sz.js file.txt
|
|
|
334
334
|
- 以 Bun 為主要執行方式。
|
|
335
335
|
- Linux / macOS 如果不是用 Bun 執行,PTY 會無法使用。
|
|
336
336
|
- 目前未實作 Go 版的 config 檔載入
|
|
337
|
+
|
|
338
|
+
## OSC 52 剪貼板
|
|
339
|
+
|
|
340
|
+
瀏覽器版 jsgotty 支援 OSC 52 寫入與 `?` 查詢。操作的是 **server 所在主機**的剪貼板,不是瀏覽器裝置的剪貼板。只有 session 的 writer 可以執行;viewer 不會重複操作。查詢結果以 OSC 52 回覆直接送回原本的 PTY。
|
|
341
|
+
|
|
342
|
+
每次操作都先嘗試 `xclip`(包括 Windows/Android),不存在或執行失敗才依序嘗試適用的 `termux-clipboard-*`、`wl-copy`/`wl-paste`、`xsel`、macOS 的 `pbcopy`/`pbpaste`、Windows 的 PowerShell。PowerShell 函式原封不動取自 jsmdcui。所有工具都失敗時使用 server 記憶體快取;成功讀到空字串就是空剪貼板,不會被舊快取取代。沒有輪詢,外部工具在 worker 中執行。
|
|
343
|
+
|
|
344
|
+
支援 `c`(clipboard)、`p`(primary)、`q`(secondary);`s` 對應 clipboard,`0`~`7` 為記憶體暫存。空選擇使用 `s0`。不提供 primary/secondary 的工具不會拿 clipboard 冒充。單次 OSC 52 請求上限 1 MiB。
|
|
345
|
+
|
|
346
|
+
```sh
|
|
347
|
+
# 寫入 server 剪貼板
|
|
348
|
+
printf '\033]52;c;%s\007' "$(printf 'Hello' | base64 | tr -d '\n')"
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
程式可送出 `ESC ] 52 ; c ; ? ST` 讀取,並從 stdin 接收 base64 編碼的 OSC 52 回覆。
|
|
352
|
+
|
|
353
|
+
`jsgotty --client` **不攔截 OSC 52**,讀寫控制碼都原樣轉送,交給最外層真正的終端模擬器決定。
|
|
354
|
+
|
|
355
|
+
### 觸控拖曳與右鍵
|
|
356
|
+
|
|
357
|
+
在程式啟用滑鼠回報時,快速點兩下並按住第二下可拖曳左鍵,放開即釋放;單指滑動仍是捲動。既有圖片長按選單的 `Remove image` 下方新增 `Right click`,會在叫出選單的原始位置送出右鍵點擊。雙指縮放與原本的移除圖片入口不變。若要停用雙擊拖曳,可在網頁 JavaScript 設定 `window.touchDoubleTapDrag = false`。
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
// Read the terminal before attaching. No reset and no guessed default modes.
|
|
2
|
+
import { randomBytes } from 'node:crypto';
|
|
3
|
+
import modes from './terminal-modes.js';
|
|
4
|
+
const {TerminalModeTracker, validateSnapshot, TRACKED_DEC_FLAGS, MOUSE_PROTOCOLS, MOUSE_ENCODINGS} = modes;
|
|
5
|
+
const ESC = '\x1b';
|
|
6
|
+
export class ModeProbe {
|
|
7
|
+
constructor(nonce = randomBytes(16).toString('hex')) {
|
|
8
|
+
this.nonce = nonce;
|
|
9
|
+
this.pending = Buffer.alloc(0);
|
|
10
|
+
this.complete = false;
|
|
11
|
+
this.kittyRestore = false;
|
|
12
|
+
this.state = new TerminalModeTracker().snapshot();
|
|
13
|
+
for (const key of Object.keys(this.state.dec)) this.state.dec[key] = null;
|
|
14
|
+
for (const key of ['alternate','cursorHidden','mouse','encoding']) this.state[key] = null;
|
|
15
|
+
this.state.kitty.normal.flags = this.state.kitty.alternate.flags = null;
|
|
16
|
+
this.state.mouseModeBits = Object.fromEntries(Object.keys(MOUSE_PROTOCOLS).map(n=>[n,null]));
|
|
17
|
+
this.state.mouseEncodingBits = Object.fromEntries(Object.keys(MOUSE_ENCODINGS).map(n=>[n,null]));
|
|
18
|
+
this.replies = new Map();
|
|
19
|
+
this.outstanding = new Set();
|
|
20
|
+
this.kittyOutstanding = false;
|
|
21
|
+
this.privatePrefix = `${ESC}]777;jsgotty-modes;${nonce};`;
|
|
22
|
+
}
|
|
23
|
+
privateQuery() { return `${ESC}]777;jsgotty-modes;${this.nonce}\x07`; }
|
|
24
|
+
standardQuery() {
|
|
25
|
+
this.outstanding = new Set([...Object.keys(TRACKED_DEC_FLAGS),25,1049,...Object.keys(MOUSE_PROTOCOLS),...Object.keys(MOUSE_ENCODINGS)].map(Number));
|
|
26
|
+
this.kittyOutstanding = true;
|
|
27
|
+
this.replyDeadline = Date.now() + 1500;
|
|
28
|
+
return [...this.outstanding]
|
|
29
|
+
.map(n => `${ESC}[?${n}$p`).join('') + `${ESC}[?u`;
|
|
30
|
+
}
|
|
31
|
+
reply(mode, value) {
|
|
32
|
+
if (this.complete) return;
|
|
33
|
+
const yes = value === 1 || value === 3;
|
|
34
|
+
// An unsupported mode cannot be active, but unlike silence it is a reply.
|
|
35
|
+
// Still aggregate below when 0 is the last answer in a mouse-mode group.
|
|
36
|
+
this.replies.set(mode, yes);
|
|
37
|
+
if (MOUSE_PROTOCOLS[mode]) this.state.mouseModeBits[mode] = yes;
|
|
38
|
+
if (MOUSE_ENCODINGS[mode]) this.state.mouseEncodingBits[mode] = yes;
|
|
39
|
+
if (value !== 0) {
|
|
40
|
+
if (TRACKED_DEC_FLAGS[mode]) this.state.dec[TRACKED_DEC_FLAGS[mode]] = yes;
|
|
41
|
+
else if (mode === 25) this.state.cursorHidden = !yes;
|
|
42
|
+
else if (mode === 1049) this.state.alternate = yes;
|
|
43
|
+
}
|
|
44
|
+
for (const [name, table, fallback, priority] of [
|
|
45
|
+
['mouse',MOUSE_PROTOCOLS,'NONE',[1003,1002,1000,9]],
|
|
46
|
+
['encoding',MOUSE_ENCODINGS,'DEFAULT',[1016,1006]],
|
|
47
|
+
]) {
|
|
48
|
+
const active = priority.find(key => this.replies.get(key) === true);
|
|
49
|
+
if (active) this.state[name] = table[active];
|
|
50
|
+
else if (Object.keys(table).every(key => this.replies.has(+key))) this.state[name] = fallback;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
consume(chunk) {
|
|
54
|
+
if ((this.complete && !this.outstanding.size && !this.kittyOutstanding) ||
|
|
55
|
+
(this.replyDeadline && Date.now() > this.replyDeadline)) {
|
|
56
|
+
this.outstanding.clear(); this.kittyOutstanding = false;
|
|
57
|
+
return Buffer.concat([this.flush(), Buffer.from(chunk)]);
|
|
58
|
+
}
|
|
59
|
+
this.pending = Buffer.concat([this.pending, Buffer.from(chunk)]);
|
|
60
|
+
const out = [];
|
|
61
|
+
while (this.pending.length) {
|
|
62
|
+
const text = this.pending.toString('latin1');
|
|
63
|
+
if (text.startsWith(this.privatePrefix)) {
|
|
64
|
+
const end = text.indexOf('\x07', this.privatePrefix.length);
|
|
65
|
+
if (end < 0 && text.length < 16384) break;
|
|
66
|
+
if (end >= 0) {
|
|
67
|
+
try {
|
|
68
|
+
const reply = JSON.parse(Buffer.from(text.slice(this.privatePrefix.length,end),'base64').toString());
|
|
69
|
+
this.state = validateSnapshot(reply);
|
|
70
|
+
this.kittyRestore = reply.kittyRestore === 1;
|
|
71
|
+
this.complete = true;
|
|
72
|
+
} catch {}
|
|
73
|
+
this.pending = this.pending.subarray(end+1); continue;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const dec = /^\x1b\[\?(\d+);([0-4])\$y/.exec(text);
|
|
77
|
+
const kitty = /^\x1b\[\?(\d+)u/.exec(text);
|
|
78
|
+
if ((dec && this.outstanding.delete(+dec[1])) || (kitty && this.kittyOutstanding)) {
|
|
79
|
+
if (dec) this.reply(+dec[1],+dec[2]);
|
|
80
|
+
else {
|
|
81
|
+
this.kittyOutstanding = false;
|
|
82
|
+
if (!this.complete && this.state.alternate != null)
|
|
83
|
+
this.state.kitty[this.state.alternate?'alternate':'normal'].flags = +kitty[1] & 31;
|
|
84
|
+
}
|
|
85
|
+
this.pending = this.pending.subarray((dec||kitty)[0].length); continue;
|
|
86
|
+
}
|
|
87
|
+
// Hold only possible query replies; normal keystrokes and mouse packets pass unchanged.
|
|
88
|
+
if (this.privatePrefix.startsWith(text) || (text.length < 64 && /^\x1b\[\?[0-9;\$]*$/.test(text)) || text === ESC+'[') break;
|
|
89
|
+
// Forward ordinary input in spans; large pastes must not become quadratic.
|
|
90
|
+
const next = this.pending.indexOf(0x1b, 1);
|
|
91
|
+
const count = next < 0 ? this.pending.length : next;
|
|
92
|
+
out.push(this.pending.subarray(0,count));this.pending=this.pending.subarray(count);
|
|
93
|
+
}
|
|
94
|
+
return Buffer.concat(out);
|
|
95
|
+
}
|
|
96
|
+
flush() { const data=this.pending;this.pending=Buffer.alloc(0);return data; }
|
|
97
|
+
}
|
|
98
|
+
export async function captureTerminalModes(input, output, {timeout=1000, probe=new ModeProbe()}={}) {
|
|
99
|
+
const buffered=[];
|
|
100
|
+
if (!input.isTTY || !output.isTTY) {
|
|
101
|
+
probe.replyDeadline = 1;
|
|
102
|
+
return {state:probe.state, probe, buffered:Buffer.alloc(0)};
|
|
103
|
+
}
|
|
104
|
+
const raw=!!input.isRaw;
|
|
105
|
+
input.setRawMode(true);
|
|
106
|
+
await new Promise(resolve=>{
|
|
107
|
+
let finished=false;
|
|
108
|
+
const finish=()=>{if(finished)return;finished=true;clearTimeout(fallback);clearTimeout(end);input.off('data',data);resolve();};
|
|
109
|
+
const data=chunk=>{const rest=probe.consume(chunk);if(rest.length)buffered.push(rest);if(probe.complete)finish();};
|
|
110
|
+
const fallback=setTimeout(()=>output.write(probe.standardQuery()),Math.min(200,timeout/2));
|
|
111
|
+
const end=setTimeout(finish,timeout);
|
|
112
|
+
input.on('data',data);input.resume();output.write(probe.privateQuery());
|
|
113
|
+
});
|
|
114
|
+
input.pause();input.setRawMode(raw);
|
|
115
|
+
buffered.push(probe.flush());
|
|
116
|
+
return {state:validateSnapshot(probe.state),probe,buffered:Buffer.concat(buffered)};
|
|
117
|
+
}
|