npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ses-adapter

v0.0.7

Published

access harden/Compartment/HandledPromise inside or outside of SES

Readme

SES-adapter

import { harden, Compartment, HandledPromise } from 'ses-adapter';

This ses-adapter module provides a future-proof way to access three SES-related functions:

  • harden: recursively freeze the API surface of an object
  • Compartment: create a new Compartment, in which code can be evaluated
  • HandledPromise: augment Promises with eventual-send pipelining methods

If the program is running in a SES environment when this module is first loaded, ses-adapter will return the SES versions of those functions. If not, it will provide an insecure simulation, which should be good enough for unit tests.

The safe versions of these functions are provided as globals inside a SES environment. The easiest way to turn a Node.js or browser web-page context into a SES environment is to use the SES-shim package (published to NPM as ses) and call its lockdown function:

import { lockdown } from 'ses';
lockdown();

Applications should create a local module, perhaps named install-SES.js, which performs that lockdown step. The application should then import ./install-SES.js before it imports anything else. This will ensure that the entire applications runs in a secure SES environment.

Library code which wants to use harden/etc, and which does not want to impose a particular execution environment on the application which eventually uses it, should not import ses or call lockdown itself. Instead, it should merely import ses-adapter to access harden/etc.

Library code that wants to run unit tests under SES, to verify it behaves correctly in a full SES environment, should create an install-SES.js and import it at the beginning of the unit test, before any of the code-under-test is imported. It should not import install-SES.js from the library code, but only from the unit test files (which are like applications, in that they are the first code run by Node).