Pear Terminal User Interface library
Strings for CLI banners & footers.
Returns { header, version, banner, footer }.
Ask user to trust or unlock an app/template.
Returns Promise<void>.
ipc:{ permit({ key, password? }), close() }info:{ key: Buffer|string, encrypted: boolean }cmd:'run'|'init'|'stage'|'seed'|'dump'|'info'
One-shot confirmation prompt.
Returns Promise<void>.
dialog:stringpreface textask:stringprompt labeldelim:stringdelimiter (e.g.':'or '?'`)validation:(value:string) => boolean|Promise<boolean>msg:stringerror message on invalid input
Interactive prompt runner.
header:stringshown once before promptsparams:Array<{ name, prompt, default?, delim?, validation?, msg?, shave? }>opts.masked:booleanmask user input (passwords)opts.defaults:{ [name:string]: any }fallback values
Process prompts and return answers.
Returns Promise<{ fields, shave }>.
opts.autosubmit:booleanfill with defaults without prompting
Thin stdio wrapper with Bare/TTY streams.
Returns object with:
in,out,err: lazy streamssize() -> { width, height }raw(bool) -> voidset raw modedrained(stream) -> Promise<void>inAttached:boolean
ANSI styling helpers (no-op on Windows).
Returns object with:
- text:
bold, dim, italic, underline, inverse, red, green, yellow, gray - cursor:
upHome(n),hideCursor(),showCursor() - links:
link(url, text?) - glyphs:
sep, tick, cross, warning, pear, dot, key, down, up
Status glyph helper.
Returns string.
value:true|false|null|number(>0success,<0fail,0|nullneutral)type:'success'|'diff'(diff:+ | - | ~)
Live status line (TTY-aware).
Returns void.
message:stringsuccess:boolean|null|number(seeindicator)
Plain line print with optional status glyph.
Returns void.
message:stringsuccess:boolean|null|number
Pretty-print byte deltas.
Returns void.
type: any value passed toindicator(..., 'diff')sizes:number[]byte changes (signed)message:string
Create a stream consumer that routes tagged events to print/status (TTY) or JSON.
Returns (opts, stream, info?, ipc?) -> Promise<void>.
cmd:stringcommand nametaggers:{ [tag]: (data, info, ipc) => string|{ output, message, success }|false|Promise<...> }output:'print'|'status'message:string|string[]success:boolean
opts:{ json?: boolean, log?: (msg, { output, success? }) => void, ctrlTTY?: boolean }stream:Readable|Arrayof{ tag, data }eventsinfo: any extra contextipc: optional IPC handle
Behavior:
opts.json === true→ emits JSON lines:{ cmd, tag, data }taggerresultfalse:- for
tag==='final'prints default success/failure - otherwise suppressed
- for
- TTY: hides/shows cursor, handles Ctrl+C cleanup
Processes failure mode flow for various Pear scenarios that prints sensible output showing stacks for operational errors and beautified output user errors.
Returns void.
bail: a paparam bail object
boolean indicating stdin TTY status.
Format bytes into human-friendly string.
Returns string.
Apache-2.0