
Research
Node.js Fixes AsyncLocalStorage Crash Bug That Could Take Down Production Servers
Node.js patched a crash bug where AsyncLocalStorage could cause stack overflows to bypass error handlers and terminate production servers.
pear-terminal
Advanced tools
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
FAQs
Pear Terminal User Interface library
The npm package pear-terminal receives a total of 497 weekly downloads. As such, pear-terminal popularity was classified as not popular.
We found that pear-terminal demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Node.js patched a crash bug where AsyncLocalStorage could cause stack overflows to bypass error handlers and terminate production servers.

Research
/Security News
A malicious Chrome extension steals newly created MEXC API keys, exfiltrates them to Telegram, and enables full account takeover with trading and withdrawal rights.

Security News
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.