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

@protontech/drive-sdk

v0.23.0

Published

Proton Drive SDK

Readme

Drive SDK for web

Use only what is exported by the library. This is the public supported API of the SDK. Anything else is internal implementation that can change without warning.

Start by creating instance of the ProtonDriveClient. That instance has then available many methods to access nodes, devices, upload and download content, or manage sharing.

Build

tsc --emitDeclarationOnly generates the .d.ts type declarations, and the @swc/cli (swc) transpiles src to dist. SWC reads the target browsers from .browserslistrc and downlevels syntax accordingly.

Testing

Tests are run with node node_modules/jest/bin/jest.js instead of the usual jest binary. This is a workaround: once @swc/jest loads the @swc/core native addon, Bun's runtime segfaults (SIGILL) on process teardown, failing the job even though all tests passed. Invoking Jest directly through Node sidesteps Bun's runtime entirely.

Polyfills

The library does not ship or bundle any polyfills. SWC only downlevels syntax to the browsers listed in .browserslistrc; it does not add runtime polyfills for newer built-in APIs. Consumers targeting a browser that's missing a runtime API the SDK relies on must bring their own polyfill for it.

Known runtime APIs the SDK relies on that are missing on some of its own minimum supported browsers. Consumers supporting these browsers must polyfill the corresponding API themselves (e.g. via core-js) before loading the SDK:

  • Array.fromAsync: missing on Safari 14.1, iOS Safari 14.5-14.8, and Chrome < 121. Throws TypeError where unsupported.
  • Uint8Array.prototype.toBase64 / .fromBase64 / .toHex / .fromHex (and the static Uint8Array.fromBase64/fromHex): missing on Safari 14.1, iOS Safari 14.5-14.8, Firefox ESR (128), and Chrome < 133. Used throughout the crypto, upload, and download code paths. Throws TypeError where unsupported.
  • Error constructor cause option (new Error(message, { cause })): missing on Safari 14.1 and iOS Safari 14.5-14.8 (added in Safari 15). Degrades silently rather than throwing: the option is ignored and error.cause stays undefined.