
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
@risingstack/async-listener
Advanced tools
This is an implementation of Trevor Norris's process.{addAsyncListener,removeAsyncListener} API for adding behavior to async calls. You can see his implementation (currently a work in progress) on Node.js core pull request #6011. This polyfill / shim is intended for use in versions of Node prior to whatever version of Node in which Trevor's changes finally land (anticipated at the time of this writing as 0.11.7).
Here's his documentation of the intended API, which will probably get cleaned up here later:
callbacks {Object}initialStorage {Value}Returns a constructed AsyncListener object. Which can then be passed to
process.addAsyncListener() and process.removeAsyncListener(). Each
function parameter is as follows:
callbacks: An Object which may contain four optional fields:
create: A function (storage) that is called when an asynchronous event
is queued. Recives the storage attached to the listner. storage can be
created by passing an initialStorage argument during costruction, or by
returning a Value from create which will be attached to the listner
and overwrite the initialStorage.before: A function (context, storage) that is called immediately
before the asynchronous callback is about to run. It will be passed both
the context (i.e. this) of the calling function and the storage.after: A function (context, storage) called immediately after the
asynchronous event's callback is run. Note that if the event's callback
throws during execution this will not be called.error: A function (storage, error) called if the event's callback
threw. If error returns true then Node will assume the error has been
properly handled and resume execution normally.initialStorage: A Value (i.e. anything) that will be, by default,
attached to all new event instances. This will be overwritten if a Value
is returned by create().Returns a constructed AsyncListener object and immediately adds it to the
listening queue.
Removes the asyncListener from the listening queue.
FAQs
Polyfill exporting trevnorris's 0.11+ asyncListener API.
We found that @risingstack/async-listener demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 10 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
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.