⚠ BREAKING CHANGES
- The PEMImportOptions type interface is renamed to KeyImportOptions.
- all builds and bundles now use ES2022 as target
- createRemoteJWKSet now uses fetch, because of that its Node.js only options.agent property has been removed and new fetch-related options were added
- drop support for Ed448 and X448
- drop support for JWK key_ops and CryptoKey usages "(un)wrapKey" and "deriveKey"
- resolved keys returned as part of verify/decrypt operations (when get key functions are used) are always normalized to either Uint8Array / CryptoKey depending on what's more efficient for the executed operation
- Key "Type" Generics are removed
- CJS-style require is now only possible when require(esm) support is present in the Node.js runtime
- private KeyObject instances can no longer be used for verify operations
- private KeyObject instances can no longer be used for encryption operations
- generateSecret, generateKeyPair, importPKCS8, importSPKI, importJWK, and importX509 now yield a CryptoKey instead of a KeyObject in Node.js
- drop support for Node.js 18.x and earlier
- runtime-specific npm releases (jose-browser-runtime, jose-node-cjs-runtime, and jose-node-esm-runtime) are no longer maintained or supported
- removed secp256k1 JWS support
- removed deprecated experimental APIs
- removed RSA1_5 JWE support
Features
- enable CryptoKey and KeyObject inputs in JWK thumbprint functions (6fc9c44)
- JSON Web Key is now an allowed input everywhere (ebda967)
Refactor
- always use infered CryptoKey (c4abaa2)
- backport the Ed25519 JWS Algorithm Identifier support (7a94cb9)
- drop support for Ed448 and X448 (2fae1c4)
- drop support for JWK key_ops and CryptoKey usages "(un)wrapKey" and "deriveKey" (ef918be)
- ensure export functions continue to work with KeyObject inputs (28e9e68)
- hardcode the cryptoRuntime export since it is now always WebCryptoAPI (e00f273)
- JWK import extractable default for public keys is now true (64dcebe)
- PEM import extractable default for public keys is now true (4e9f114)
- removed deprecated APIs (5352083)
- removed secp256k1 JWS support (e2b58a5)
- restructure src/lib and src/runtime now that runtime is fixed (9b236ce)
- target is now ES2022 everywhere (aa590d5)
- update importJWK args to align with other import functions (355a2dd)
- WebCryptoAPI is now the only crypto used (161de46)