Pear Terminal User Interface library
usageStrings for CLI banners & footers.
Returns { header, version, banner, footer }.
permit(ipc, info, cmd)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'confirm(dialog, ask, delim, validation, msg)One-shot confirmation prompt.
Returns Promise<void>.
dialog: string preface textask: string prompt labeldelim: string delimiter (e.g. ':' or '?'`)validation: (value:string) => boolean|Promise<boolean>msg: string error message on invalid inputconst interact = new Interact(header, params[, opts])Interactive prompt runner.
header: string shown once before promptsparams: Array<{ name, prompt, default?, delim?, validation?, msg?, shave? }>opts.masked: boolean mask user input (passwords)opts.defaults: { [name:string]: any } fallback valuesinteract.run([opts])Process prompts and return answers.
Returns Promise<{ fields, shave }>.
opts.autosubmit: boolean fill with defaults without promptingstdioThin stdio wrapper with Bare/TTY streams.
Returns object with:
in, out, err: lazy streamssize() -> { width, height }raw(bool) -> void set raw modedrained(stream) -> Promise<void>inAttached: booleanansiANSI styling helpers (no-op on Windows).
Returns object with:
bold, dim, italic, underline, inverse, red, green, yellow, grayupHome(n), hideCursor(), showCursor()link(url, text?)sep, tick, cross, warning, pear, dot, key, down, upindicator(value[, type])Status glyph helper.
Returns string.
value: true|false|null|number (>0 success, <0 fail, 0|null neutral)type: 'success'|'diff' (diff: + | - | ~)status(message[, success])Live status line (TTY-aware).
Returns void.
message: stringsuccess: boolean|null|number (see indicator)print(message[, success])Plain line print with optional status glyph.
Returns void.
message: stringsuccess: boolean|null|numberbyteDiff({ type, sizes, message })Pretty-print byte deltas.
Returns void.
type: any value passed to indicator(..., 'diff')sizes: number[] byte changes (signed)message: stringoutputter(cmd[, taggers])Create a stream consumer that routes tagged events to print/status (TTY) or JSON.
Returns (opts, stream, info?, ipc?) -> Promise<void>.
cmd: string command nametaggers: { [tag]: (data, info, ipc) => string|{ output, message, success }|false|Promise<...> }
output: 'print'|'status'message: string|string[]success: booleanopts: { json?: boolean, log?: (msg, { output, success? }) => void, ctrlTTY?: boolean }stream: Readable|Array of { tag, data } eventsinfo: any extra contextipc: optional IPC handleBehavior:
opts.json === true → emits JSON lines: { cmd, tag, data }tagger result false:
tag==='final' prints default success/failureexplain(bail)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 objectisTTYboolean indicating stdin TTY status.
byteSize(bytes)Format bytes into human-friendly string.
Returns string.
Apache-2.0