Skip to content

v8.0.0 - Around the (ESM) World

Choose a tag to compare

@MasterKale MasterKale released this 22 Aug 17:52
· 579 commits to master since this release
f2adcad

This major release marks the completion of a long journey that started with the release of v7.0.0:
SimpleWebAuthn is now available for use in non-Node projects! 🎉

SimpleWebAuthn debuted in mid-2020 as a combination of libraries aiming to make WebAuthn simpler to
use across browsers and "NodeJS + CommonJS" applications. Since then NodeJS has evolved to gain ESM
support, and additional JavaScript and TypeScript runtimes have debuted that offer ESM-centric,
TypeScript-first alternatives while also implementing Web APIs to offer a more consistent and
capable execution environment for developers.

I've wanted to make this project available to developers using these Node alternatives to help them
get past some of WebAuthn's rough spots. Today I'm happy to announce that this goal has been
achieved! 😌

See the Changes below for more information, as well as additional information on breaking
changes made in this release.

Packages

  • @simplewebauthn/browser@8.0.0
  • @simplewebauthn/server@8.0.0
  • @simplewebauthn/typescript-types@8.0.0

Changes

  • [server] [typescript-types] SimpleWebAuthn can now also be used in runtimes other than Node.
    Deno is now a first-class runtime for this project alongside Node.
    • The following list of runtimes are officially supported:
    • The following list of runtimes are periodically tested but unofficially supported:
      • (New) CloudFlare Workers
      • (New) Bun
  • [browser] Version sync

Breaking Changes

  • [server] generateRegistrationOptions() and generateAuthenticationOptions() are now
    asynchronous methods. Refactor calls to these methods to handle the Promise that's now returned
    in whatever way is appropriate for your project.
  • [server] generateChallenge() (in @simplewebauthn/server/helpers) is now an asynchronous
    method. Refactor calls to this method to handle the Promise that's now returned in whatever way
    is appropriate for your project.