From 0681dda1592a82c22a18981002b3763c502d0fc4 Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Mon, 2 Oct 2023 14:38:54 +0200 Subject: [PATCH] feat: export the used crypto runtime as a constant This will aid libraries to determine which jose runtime was imported/required. With the many JS runtimes each having a different way of resolving transient dependencies and targets this has become a bit troublesome to deal with. --- src/index.ts | 2 ++ src/runtime/browser/runtime.ts | 3 +++ src/runtime/node/runtime.ts | 3 +++ src/types.d.ts | 2 ++ 4 files changed, 10 insertions(+) create mode 100644 src/runtime/browser/runtime.ts create mode 100644 src/runtime/node/runtime.ts diff --git a/src/index.ts b/src/index.ts index cc72bcfbba..aa008ab6d3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -96,3 +96,5 @@ export type { JWTHeaderParameters, JSONWebKeySet, } from './types.d' + +export { default as cryptoRuntime } from './runtime/runtime.js' diff --git a/src/runtime/browser/runtime.ts b/src/runtime/browser/runtime.ts new file mode 100644 index 0000000000..b1c305748f --- /dev/null +++ b/src/runtime/browser/runtime.ts @@ -0,0 +1,3 @@ +import { CryptoRuntime } from '../../types.d' + +export default 'WebCryptoAPI' as CryptoRuntime diff --git a/src/runtime/node/runtime.ts b/src/runtime/node/runtime.ts new file mode 100644 index 0000000000..1379e59835 --- /dev/null +++ b/src/runtime/node/runtime.ts @@ -0,0 +1,3 @@ +import { CryptoRuntime } from '../../types.d' + +export default 'node:crypto' as CryptoRuntime diff --git a/src/types.d.ts b/src/types.d.ts index 1bf12258c8..1ee6d56ff5 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -668,3 +668,5 @@ export interface CompactJWEHeaderParameters extends JWEHeaderParameters { export interface JSONWebKeySet { keys: JWK[] } + +export type CryptoRuntime = 'WebCryptoAPI' | 'node:crypto'